{"schemaVersion":2,"builtAt":"2026-10-14T10:24:21.026Z","embeddingModel":"openai/text-embedding-3-small","neighborsPerPage":5,"relatedPolicy":"related-v2.0","relatedPerPage":12,"sites":{"ai-sdk":{"baseUrl":"https://ai-sdk.dev","pages":533},"chat-sdk":{"baseUrl":"https://chat-sdk.dev","pages":47},"eve":{"baseUrl":"https://eve.dev","pages":104},"flags-sdk":{"baseUrl":"https://flags-sdk.dev","pages":56},"nextjs":{"baseUrl":"https://nextjs.org","pages":468},"streamdown":{"baseUrl":"https://streamdown.ai","pages":25},"swr":{"baseUrl":"https://swr.vercel.app","pages":29},"turborepo":{"baseUrl":"https://turborepo.dev","pages":110},"v0":{"baseUrl":"https://v0.app","pages":189},"vercel-changelog":{"baseUrl":"https://vercel.com","pages":1410},"vercel-docs":{"baseUrl":"https://vercel.com","pages":1640},"vercel-kb":{"baseUrl":"https://vercel.com","pages":513},"vercel-shop":{"baseUrl":"https://vercel.shop","pages":38},"vercel-web":{"baseUrl":"https://vercel.com","pages":495},"workflow":{"baseUrl":"https://workflow-sdk.dev","pages":182}},"pages":[{"site":"ai-sdk","path":"/cookbook/api-servers/express","title":"Express","summary":"Learn how to use the AI SDK in an Express server","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.1255},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.1648},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.1847},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.2071},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.236}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"inbound"},{"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/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","title":"Fastify","summary":"Learn how to use the AI SDK in a Fastify server","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.1648},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.175},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.2214},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.2336},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.2691}],"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/hono","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":"Example of using the AI SDK in a Hono server.","outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.183},{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.2071},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.2214},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.2654},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","distance":0.2962}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","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/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","title":"Nest.js","summary":"Learn how to use the AI SDK in a Nest.js server","outbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.1566},{"site":"ai-sdk","path":"/cookbook/api-servers/express","distance":0.1847},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.2336},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2454},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2603}],"related":[{"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/express","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","title":"Node.js HTTP Server","summary":"Learn how to use the AI SDK in a Node.js HTTP server","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.1255},{"site":"ai-sdk","path":"/cookbook/api-servers/nest","distance":0.1566},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.175},{"site":"ai-sdk","path":"/cookbook/api-servers/hono","distance":0.183},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2246}],"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/nest","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/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides","title":"Guides","summary":"Learn how to build AI applications with the AI SDK","outbound":[{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4"},{"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/natural-language-postgres"},{"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/rag-chatbot"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot"},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7"}],"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"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started","distance":0.1966},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2053},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.2081},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2146},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.2172}],"related":[{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","title":"Compact Agent Context","summary":"Learn how to compact agent context by mutating message state between steps with prepareStep.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2172},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","distance":0.2362},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.2534},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.257},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2614}],"related":[{"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/subagents","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","title":"Add Skills to Your Agent","summary":"Learn how to extend your agent with specialized capabilities loaded at runtime with Agent Skills.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"eve","path":"/docs/skills","distance":0.1257},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.1656},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.1846},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","distance":0.1904},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.1931}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","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":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started/extending-with-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":"Get started with Claude 4 using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","distance":0.0715},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2038},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2134},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2152},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.2184}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","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":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/computer-use","title":"Get started with Computer Use","summary":"Get started with Claude's Computer Use capabilities with the AI SDK","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4","distance":0.2317},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","distance":0.243},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2891},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2955},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.306}],"related":[{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","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":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/custom-memory-tool","title":"Build a Custom Memory Tool","summary":"Build an agent that persists memories using a filesystem-backed memory tool.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"vercel-web","path":"/blog/ai-sdk-6","distance":0.3846},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.3851},{"site":"vercel-kb","path":"/kb/guide/building-community-moderation-agents-using-ai-sdk","distance":0.3856},{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.3888},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.3889}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"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/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-a-multi-step-research-agent-on-vercel","via":"neighbor"},{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","title":"Get started with DeepSeek V3.2","summary":"Get started with DeepSeek V3.2 using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.0818},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1695},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1755},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.1922},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.1962}],"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":"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/o3","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/gemini","title":"Get started with Gemini 3","summary":"Get started with Gemini 3 using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1706},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.1852},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.2027},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2101},{"site":"ai-sdk","path":"/cookbook/guides/google-gemini-image-generation","distance":0.212}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","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/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/google-gemini-image-generation","title":"Google Gemini Image Generation","summary":"Generate and edit images with Google Gemini 3.1 Flash Image using the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.212},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.2512},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.27},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.2949},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.3179}],"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/sdks-and-apis/openai-chat-completions/image-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","title":"Get started with GPT-5","summary":"Get started with GPT-5 using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.1208},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1219},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1345},{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.1469},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1552}],"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-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","title":"Get started with Llama 3.1","summary":"Get started with Llama 3.1 using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1345},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.153},{"site":"ai-sdk","path":"/docs/introduction","distance":0.157},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1586},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1644}],"related":[{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","title":"Multi-Modal Agent","summary":"Learn how to build a multi-modal agent that can process images and PDFs with the AI SDK.","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/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":"/cookbook/guides"},{"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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1428},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1643},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1957},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","distance":0.1962},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.1997}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"workflow","path":"/docs/ai","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/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/natural-language-postgres","title":"Natural Language Postgres","summary":"Learn how to build a Next.js app that lets you talk to a PostgreSQL database in natural language.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","distance":0.3336},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.3429},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.346},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.3474},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.3563}],"related":[{"site":"eve","path":"/docs/tutorial/query-sample-data","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/o1","title":"Get started with OpenAI o1","summary":"Get started with OpenAI o1 using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/o3","distance":0.078},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1219},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1644},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.1725},{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.1815}],"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":"ai-sdk","path":"/cookbook/guides/o3","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/o3","title":"Get started with OpenAI o3-mini","summary":"Get started with OpenAI o3-mini using the AI SDK.","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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.078},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1469},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.186},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.1922},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.2043}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/o1","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/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","title":"OpenAI Responses API","summary":"Get started with the OpenAI Responses API using the AI SDK.","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":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1208},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.153},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1706},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1725},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.1997}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-4-2","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","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/r1","title":"Get started with DeepSeek R1","summary":"Get started with DeepSeek R1 using the AI SDK.","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":"/cookbook/guides"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.0818},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.1811},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.1815},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1908},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1929}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","title":"RAG Agent","summary":"Learn how to build a RAG Agent with the AI SDK and Next.js","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/guides"},{"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":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.2353},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.2536},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.2588},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.2596},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2758}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-rag","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-prisma-postgres","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/running-next-js-inside-chatgpt-a-deep-dive-into-native-app-integration","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent","via":"inbound"}]},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","title":"Slackbot Agent Guide","summary":"Learn how to use the AI SDK to build an AI Agent in Slack.","outbound":[{"site":"eve","path":"/docs/channels/slack"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk","distance":0.1622},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1654},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.201},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","distance":0.2099},{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","distance":0.2112}],"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/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"chat-sdk","path":"/docs/create-chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/guides/sonnet-3-7","title":"Get started with Claude 3.7 Sonnet","summary":"Get started with Claude 3.7 Sonnet using the AI SDK.","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/anthropic"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides"}],"requires":[{"site":"ai-sdk","path":"/cookbook/guides"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/claude-4","distance":0.0715},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2079},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2147},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.2187},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.2216}],"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-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","title":"Caching Middleware","summary":"Learn how to create a caching middleware with Next.js and KV.","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.1126},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.1714},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2143},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.2692},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2711}],"related":[{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","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":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/call-tools","title":"Call Tools","summary":"Learn how to call tools using the AI SDK and Next.js","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.0529},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1072},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1162},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1356},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.1715}],"related":[{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","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":"/cookbook/rsc/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","title":"Call Tools in Multiple Steps","summary":"Learn how to call tools in multiple steps using the AI SDK and Next.js","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.0529},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1203},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1427},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1527},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.1656}],"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":"/cookbook/rsc/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","title":"Chat with PDFs","summary":"Learn how to build a chatbot that can understand PDFs using the AI SDK and Next.js","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.1962},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","distance":0.2223},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2321},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.2322},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.2396}],"related":[{"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-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-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":"Build a custom format to stream LLM responses","outbound":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","distance":0.1837},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.1937},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2135},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.219},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.2211}],"related":[{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","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/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","title":"Generate Image with Chat Prompt","summary":"Learn how to generate an image with a chat prompt using the AI SDK and Next.js","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.1409},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1687},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.187},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.1945},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1996}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-object","title":"Generate Object","summary":"Learn how to generate object using the AI SDK and Next.js","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.0957},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1288},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.1352},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","distance":0.1477},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.1595}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt","title":"Generate Object with File Prompt through Form Submission","summary":"Learn how to generate object with file prompt through form submission using the AI SDK and Next.js","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.1477},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.2089},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","distance":0.2223},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.2297},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.2362}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-text","title":"Generate Text","summary":"Learn how to generate text using the AI SDK and Next.js.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.085},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.1061},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.1175},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1207},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.1288}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","title":"Generate Text with Chat Prompt","summary":"Learn how to generate text with chat prompt using the AI SDK and Next.js","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.0573},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.078},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.0818},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1061},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","distance":0.1409}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/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/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","title":"Human-in-the-Loop with Next.js","summary":"Add a human approval step to your agentic system with Next.js and the AI SDK","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/agents/tool-approvals","distance":0.1715},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.215},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.2157},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.2281},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2358}],"related":[{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","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":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","title":"Markdown Chatbot with Streamdown","summary":"Render streaming Markdown responses with Streamdown, Next.js, and the AI SDK.","outbound":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt"},{"site":"streamdown","path":"/docs/getting-started"},{"site":"streamdown","path":"/docs/memoization"},{"site":"streamdown","path":"/docs/plugins"}],"inbound":[],"requires":[],"neighbors":[{"site":"streamdown","path":"/docs","distance":0.1729},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1878},{"site":"streamdown","path":"/docs/usage","distance":0.1964},{"site":"streamdown","path":"/docs/getting-started","distance":0.2021},{"site":"streamdown","path":"/docs/faq","distance":0.2105}],"related":[{"site":"streamdown","path":"/docs","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","title":"Model Context Protocol (MCP) Tools","summary":"Learn how to use MCP tools with the AI SDK and Next.js","outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.1001},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.1676},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2037},{"site":"nextjs","path":"/docs/app/guides/mcp","distance":0.2225},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","distance":0.225}],"related":[{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","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/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","title":"Render Visual Interface in Chat","summary":"Learn how to render visual interfaces in chat using the AI SDK and Next.js","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.1072},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1203},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1339},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.1384},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","distance":0.1687}],"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":"/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/next/generate-image-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","title":"Send Custom Body from useChat","summary":"Learn how to send a custom body from the useChat hook using the AI SDK and Next.js","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","distance":0.2232},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","distance":0.2233},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2442},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2618},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2625}],"related":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","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","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-object","title":"Stream Object","summary":"Learn how to stream object using the AI SDK and Next.js","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.1112},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.1244},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.1348},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.1732},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.1789}],"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/node/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-text","title":"Stream Text","summary":"Learn how to stream text using the AI SDK and Next.js","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.0821},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.0904},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1207},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1343},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.135}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/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/next/stream-text-multistep","title":"streamText Multi-Step Cookbook","summary":"Learn how to create several streamText steps with different settings","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1799},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.1837},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1851},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1912},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2009}],"related":[{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","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/next/stream-text-with-chat-prompt","title":"Stream Text with Chat Prompt","summary":"Learn how to generate text using the AI SDK and Next.js","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.0797},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.0818},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.0904},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.0951},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.1284}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/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/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-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","title":"Stream Text with Image Prompt","summary":"Learn how to stream text with an image prompt using the AI SDK and Next.js","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.1065},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.1284},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1459},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1545},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.1624}],"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/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":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","title":"Track Agent Token Usage","summary":"Learn how to track the active context window with ToolLoopAgent.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1962},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2237},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","distance":0.2362},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2418},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.2524}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/ai","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":"/cookbook/guides/agent-context-compaction","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":"/cookbook/next/use-shared-chat-context","title":"Share useChat State Across Components","summary":"Learn how to share a chat instance across multiple components with useChat and easily reset the chat.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2635},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2771},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2818},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2992},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.3018}],"related":[{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/sharing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","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/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools","title":"Call Tools","summary":"Learn how to call tools using the AI SDK and Node","outbound":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.108},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.1427},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1664},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1675},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1715}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","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/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","title":"Call Tools in Parallel","summary":"Learn how to call tools in parallel using the AI SDK in Node.js","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.1001},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.108},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.1352},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","distance":0.1963},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.2006}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","title":"Call Tools in Multiple Steps","summary":"Learn how to call tools with multiple steps using the AI SDK and Node","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/call-tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.1352},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.1427},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1656},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","distance":0.2063},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","distance":0.2134}],"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":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","title":"Call Tools with Image Prompt","summary":"Learn how to call tools with image prompt using the AI SDK and Node","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.1736},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.1754},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.1963},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2134},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","distance":0.217}],"related":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","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":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","title":"Dynamic Prompt Caching","summary":"Learn how to reduce API costs by implementing dynamic prompt caching for Anthropic models using cache control directives.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","distance":0.2178},{"site":"ai-sdk","path":"/docs/advanced/caching","distance":0.285},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.2998},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/advanced","distance":0.3028},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.3216}],"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/advanced","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/embed-text","title":"Embed Text","summary":"Learn how to embed text using the AI SDK and Node","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.1286},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2116},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.2605},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","distance":0.2633},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.2686}],"related":[{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","title":"Embed Text in Batch","summary":"Learn how to embed multiple text using the AI SDK and Node","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.1286},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2349},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.2896},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.3061},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","distance":0.3196}],"related":[{"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":"/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":"/cookbook/node/stream-text-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-object","title":"Generate Object","summary":"Learn how to generate structured data using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.1352},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.1508},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.1578},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.1621},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.165}],"related":[{"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/rsc/generate-object","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-reasoning","title":"Generate Object with a Reasoning Model","summary":"Learn how to generate structured data with a reasoning model using the AI SDK and Node","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":"/cookbook/node/generate-object","distance":0.1724},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.202},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2201},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.2457},{"site":"ai-sdk","path":"/cookbook/guides/o1","distance":0.246}],"related":[{"site":"ai-sdk","path":"/cookbook/node/generate-object","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/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/generate-text","title":"Generate Text","summary":"Learn how to generate text using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.0925},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1175},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.1288},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.1299},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.1617}],"related":[{"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/rsc/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":"Learn how to generate text with chat prompt using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.0748},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.078},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.0925},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1293},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.1403}],"related":[{"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/node/generate-text","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/generate-text-with-image-prompt","title":"Generate Text with Image Prompt","summary":"Learn how to generate text with image prompt using the AI SDK and Node","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.1299},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.1403},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.1471},{"site":"ai-sdk","path":"/cookbook/node/call-tools-with-image-prompt","distance":0.1736},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1877}],"related":[{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-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-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/intercept-fetch-requests","title":"Intercepting Fetch Requests","summary":"Learn how to intercept fetch requests using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/secure-url-fetching","distance":0.2647},{"site":"workflow","path":"/docs/errors/fetch-in-workflow","distance":0.3099},{"site":"ai-sdk","path":"/cookbook/api-servers/node-http-server","distance":0.3253},{"site":"swr","path":"/docs/data-fetching","distance":0.3295},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.3362}],"related":[{"site":"workflow","path":"/docs/errors/fetch-in-workflow","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/fetch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/secure-url-fetching","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":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent","title":"Knowledge Base Agent","summary":"Build an AI agent that can read from and write to a knowledge base using Upstash Search and the AI SDK","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":"/cookbook/node/retrieval-augmented-generation","distance":0.2611},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2652},{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings","distance":0.2857},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2864},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","distance":0.2959}],"related":[{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-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/node/local-caching-middleware","title":"Local Caching Middleware","summary":"Learn how to create a caching middleware for local development.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/caching","distance":0.1183},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","distance":0.1714},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2234},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","distance":0.2998},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3028}],"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":"ai-sdk","path":"/cookbook/next/caching-middleware","via":"neighbor"},{"site":"streamdown","path":"/docs/memoization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","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":"Learn how to create your own agentic loop with full control over tool execution","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.093},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1189},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.1297},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2154},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.219}],"related":[{"site":"ai-sdk","path":"/docs/agents/loop-control","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/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/mcp-elicitation","title":"Model Context Protocol (MCP) Elicitation","summary":"Learn how to handle elicitation requests from MCP servers with the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2667},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2737},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2878},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","distance":0.3108},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.3347}],"related":[{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","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":"/providers/community-providers/mcp-sampling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","title":"Model Context Protocol (MCP) Tools","summary":"Learn how to use MCP tools with the AI SDK and Node","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.1001},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.1811},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.1899},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.221},{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.2282}],"related":[{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","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/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/repair-json-with-jsonrepair","title":"Repair Malformed JSON with jsonrepair","summary":"Learn how to use the jsonrepair library to automatically fix truncated or malformed JSON output from language models.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.3285},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3524},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3635},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","distance":0.368},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","distance":0.382}],"related":[{"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":"/docs/reference/ai-sdk-errors/ai-json-parse-error","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/retrieval-augmented-generation","title":"Retrieval Augmented Generation","summary":"Learn how to use retrieval augmented generation using the AI SDK and Node","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.2547},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.2593},{"site":"ai-sdk","path":"/cookbook/node/knowledge-base-agent","distance":0.2611},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.2633},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.2714}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-rag","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","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":"Learn how to stream structured data using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1348},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.1508},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.1543},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.1871},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","distance":0.2127}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","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":"Learn how to record the final object after streaming an object using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.2127},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","distance":0.2143},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2624},{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","distance":0.2909},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.2958}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","title":"Record Token Usage After Streaming Object","summary":"Learn how to record token usage when streaming structured data using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","distance":0.1553},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-final-object","distance":0.2143},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.3263},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.3284},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","distance":0.3378}],"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":"ai-sdk","path":"/cookbook/node/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","title":"Stream Object with Image Prompt","summary":"Learn how to stream structured data with an image prompt using the AI SDK and Node","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.1075},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.1484},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.1624},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.1871},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.195}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","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/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-text","title":"Stream Text","summary":"Learn how to stream text using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1707},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.18},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1857},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.2032},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.2088}],"related":[{"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/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","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":"Learn how to stream text with chat prompt using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.0951},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1036},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.1173},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.1229},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.1293}],"related":[{"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-text-with-file-prompt","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/stream-text-with-file-prompt","title":"Stream Text with File Prompt","summary":"Learn how to stream text with file prompt using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","distance":0.0777},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1173},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.1484},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.1805},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1983}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-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/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/next/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-image-prompt","title":"Stream Text with Image Prompt","summary":"Learn how to stream text with image prompt using the AI SDK and Node","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-file-prompt","distance":0.0777},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-image-prompt","distance":0.1065},{"site":"ai-sdk","path":"/cookbook/node/stream-object-with-image-prompt","distance":0.1075},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1229},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.1471}],"related":[{"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/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/web-search-agent","title":"Web Search Agent","summary":"Learn how to build an agent that has access to web with the AI SDK and Node","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1562},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1911},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2255},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","distance":0.2268},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.2286}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","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/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-search","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","title":"Call Tools","summary":"Learn how to call tools using the AI SDK and React Server Components.","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.1155},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1356},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1527},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.1664},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2007}],"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/next/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","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":"Learn how to tools in parallel text using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.1001},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","distance":0.1155},{"site":"ai-sdk","path":"/cookbook/next/call-tools","distance":0.1162},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1427},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.1675}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","via":"neighbor"},{"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/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","title":"Generate Object","summary":"Learn how to generate object using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.0957},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.1202},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.1578},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.1602},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1824}],"related":[{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","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/rsc/generate-text","title":"Generate Text","summary":"Learn how to generate text using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.085},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.112},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.119},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.1288},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.1652}],"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/rsc/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","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":"Learn how to generate text with chat prompt using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","distance":0.0573},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-chat-prompt","distance":0.0748},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1139},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.119},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.1305}],"related":[{"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/rsc/stream-text-with-chat-prompt","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/render-visual-interface-in-chat","title":"Render Visual Interface in Chat","summary":"Learn how to generate text using the AI SDK and React Server Components.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1192},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.1268},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1339},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.1679},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.1687}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","title":"Restore Messages From Database","summary":"Learn how to restore messages from an external database using the AI SDK and React Server Components","outbound":[{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.0988},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.195},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2221},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2446},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2468}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","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":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","title":"Save Messages To Database","summary":"Learn how to save messages to an external database using the AI SDK and React Server Components","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","distance":0.0988},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1268},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.1689},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.1725},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1798}],"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/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/stream-object","title":"Stream Object","summary":"Learn how to stream object using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.1202},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1244},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.1306},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.1543},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1837}],"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/node/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","title":"Stream Text","summary":"Learn how to stream text using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.0821},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text","distance":0.112},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.1306},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1443},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.15}],"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/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-updates-to-visual-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","title":"Stream Text with Chat Prompt","summary":"Learn how to stream text with chat prompt using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.0797},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.1036},{"site":"ai-sdk","path":"/cookbook/rsc/generate-text-with-chat-prompt","distance":0.1139},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.1343},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.1443}],"related":[{"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/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","title":"Record Token Usage after Streaming User Interfaces","summary":"Learn how to record token usage after streaming user interfaces using the AI SDK and React Server Components","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.1553},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1643},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2125},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.2264},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2383}],"related":[{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","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","title":"Stream Updates to Visual Interfaces","summary":"Learn how to generate text using the AI SDK and React Server Components.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1192},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.1462},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text","distance":0.15},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.1514},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.1611}],"related":[{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","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/loading-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced","title":"Advanced","summary":"Learn how to use advanced functionality within the AI SDK and RSC API.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference","distance":0.1971},{"site":"workflow","path":"/docs/advanced","distance":0.2117},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.2222},{"site":"ai-sdk","path":"/docs/troubleshooting","distance":0.2245},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2297}],"related":[{"site":"workflow","path":"/docs/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/backpressure","title":"Backpressure","summary":"How to handle backpressure and cancellation when working with the AI SDK","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.2609},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2632},{"site":"ai-sdk","path":"/docs/foundations/streaming","distance":0.2704},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.2759},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2825}],"related":[{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"vercel-web","path":"/blog/an-introduction-to-streaming-on-the-web","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handling-backpressure","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/foundations/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/caching","title":"Caching","summary":"How to handle caching when working with the AI SDK","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/ai-sdk-ui/stream-protocol"},{"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":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","distance":0.1126},{"site":"ai-sdk","path":"/cookbook/node/local-caching-middleware","distance":0.1183},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2357},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2513},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.2632}],"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":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/dynamic-prompt-caching","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/streaming","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","title":"Language Models as Routers","summary":"Generative User Interfaces and Language Models as Routers","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.1972},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2512},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.2549},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2565},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","distance":0.271}],"related":[{"site":"nextjs","path":"/docs/app/guides/internationalization","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","title":"Multiple Streamables","summary":"Learn to handle multiple streamables in your application.","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":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.1811},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.2201},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2224},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2272},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.2428}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","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/advanced/multistep-interfaces","title":"Multistep Interfaces","summary":"Concepts behind building multistep interfaces","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","distance":0.1801},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.28},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.2883},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3031},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","distance":0.3053}],"related":[{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","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":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/model-as-router","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering","title":"Prompt Engineering","summary":"Learn how to engineer prompts for LLMs with the AI SDK","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":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2209},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","distance":0.2238},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2528},{"site":"v0","path":"/docs/text-prompting","distance":0.2619},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2738}],"related":[{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-to-prompt-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-ai-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/rate-limiting","title":"Rate Limiting","summary":"Learn how to rate limit your application.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/rate-limits/find","distance":0.3415},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.3423},{"site":"vercel-docs","path":"/docs/ai-gateway/rate-limits","distance":0.3861},{"site":"ai-sdk","path":"/docs/advanced/caching","distance":0.3945},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","distance":0.3951}],"related":[{"site":"v0","path":"/docs/api/v1/reference/rate-limits/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/rate-limits","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/securing-ai-app-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rate-limiting-now-available-on-hobby-with-higher-included-usage-on-pro","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","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":"Rendering UI with Language Models","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":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.1325},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","distance":0.1678},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1679},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1717},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.174}],"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":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/secure-url-fetching","title":"Secure URL Fetching","summary":"How the AI SDK protects server-side fetches of URLs returned by model providers, and how to harden your deployment further.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/intercept-fetch-requests","distance":0.2647},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3445},{"site":"ai-sdk","path":"/docs/introduction","distance":0.3569},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.3572},{"site":"eve","path":"/docs/concepts/security-model","distance":0.3589}],"related":[{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"workflow","path":"/docs/errors/fetch-in-workflow","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/intercept-fetch-requests","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":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","title":"Sequential Generations","summary":"Learn how to implement sequential generations (\"chains\") with the AI SDK","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/workflows","distance":0.2989},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.3004},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.3066},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.3098},{"site":"ai-sdk","path":"/cookbook/next/generate-text","distance":0.3112}],"related":[{"site":"ai-sdk","path":"/docs/agents/workflows","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","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":"/docs/advanced/stopping-streams","title":"Stopping Streams","summary":"Learn how to cancel streams with the AI SDK","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"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation"}],"requires":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","distance":0.1575},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.1639},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","distance":0.1942},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.2039},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.252}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation","via":"inbound"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/cancellation","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/troubleshooting/stream-abort-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","title":"Vercel Deployment Guide","summary":"Learn how to deploy an AI application to production on Vercel","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":[{"site":"ai-sdk","path":"/docs/advanced"}],"neighbors":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.1975},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.2001},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","distance":0.2109},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2161},{"site":"vercel-kb","path":"/kb/guide/implementing_canary_deployments_on_vercel","distance":0.2186}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","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/implementing_canary_deployments_on_vercel","via":"neighbor"},{"site":"v0","path":"/docs/deployments","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":"ai-sdk","path":"/docs/agents/building-agents","title":"Building Agents","summary":"Complete guide to creating agents with the ToolLoopAgent.","outbound":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options"},{"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-docs","path":"/docs/ai-gateway/getting-started"},{"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"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.0752},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.1174},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.1189},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.1314},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","distance":0.1625}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","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/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/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","title":"Configuring Call Options","summary":"Pass type-safe runtime inputs to dynamically configure agent behavior.","outbound":[{"site":"ai-sdk","path":"/docs/agents/loop-control"},{"site":"ai-sdk","path":"/docs/agents/workflows"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/building-agents"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1625},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2062},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2121},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.2245},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2461}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"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":"Control agent execution with built-in loop management using stopWhen and prepareStep","outbound":[{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent"}],"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.093},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1174},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.1541},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","distance":0.2172},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","distance":0.2223}],"related":[{"site":"workflow","path":"/docs/ai/message-queueing","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"inbound"},{"site":"workflow","path":"/docs/ai","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":"/cookbook/guides/agent-context-compaction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/memory","title":"Memory","summary":"Add persistent memory to your agent using provider-defined tools, memory providers, or a custom tool.","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":"eve","path":"/docs/memory","distance":0.1823},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.1845},{"site":"eve","path":"/docs/memory/custom-provider","distance":0.1919},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","distance":0.2029},{"site":"ai-sdk","path":"/providers/community-providers/mem0","distance":0.2168}],"related":[{"site":"eve","path":"/docs/memory","via":"neighbor"},{"site":"eve","path":"/docs/memory/custom-provider","via":"neighbor"},{"site":"eve","path":"/docs/memory/file","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","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/agents/overview","title":"Overview","summary":"Learn how to build agents with the AI SDK.","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/harness-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflows"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"},{"site":"vercel-changelog","path":"/changelog/ai-code-elements"},{"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":"workflow","path":"/docs/ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.0752},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.1297},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.1541},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.1754},{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.181}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-code-elements","via":"inbound"},{"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":"workflow","path":"/docs/ai","via":"inbound"},{"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":"/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/subagents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","title":"Policy-Based Tool Approvals","summary":"Author tool authorization rules as code with @ai-sdk/policy-opa and Open Policy Agent.","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.2298},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.2831},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3215},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.3257},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.3333}],"related":[{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"site":"eve","path":"/docs/guides/decide","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/subagents","title":"Subagents","summary":"Delegate context-heavy tasks to specialized subagents while keeping the main agent focused.","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":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1848},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2018},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2113},{"site":"eve","path":"/docs/subagents","distance":0.222},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.2387}],"related":[{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","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/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/terminal-ui","title":"Terminal UI","summary":"Run AI SDK agents in an interactive terminal UI.","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":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.0827},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.1233},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","distance":0.1359},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","distance":0.1575},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.181}],"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":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","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":"/cookbook/node/manual-agent-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","title":"Tool Approvals","summary":"Add manual and automatic approval flows to ToolLoopAgent tools.","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-core/mcp-tools"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","distance":0.1715},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.2163},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.2297},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","distance":0.2298},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2449}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"chat-sdk","path":"/docs/approvals","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","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":"/docs/reference/ai-sdk-core/agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","title":"WorkflowAgent","summary":"Build durable, resumable agents with the WorkflowAgent from @ai-sdk/workflow.","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-core/loop-finished"},{"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/loop-control"},{"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-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"},{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide"},{"site":"vercel-kb","path":"/kb/guide/private-enterprise-agents-vercel"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.1635},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.1645},{"site":"eve","path":"/docs/tools/workflows","distance":0.2082},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","distance":0.2198},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.23}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-approval-workflow-stack-guide","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/private-enterprise-agents-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"eve","path":"/docs/tools/workflows","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/agents/workflows","title":"Workflow Patterns","summary":"Learn workflow patterns for building reliable agents with the AI SDK.","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.2261},{"site":"workflow","path":"/docs/ai","distance":0.2398},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.2481},{"site":"workflow","path":"/docs/ai/defining-tools","distance":0.2492},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","distance":0.2523}],"related":[{"site":"workflow","path":"/docs/ai","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/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","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/agents/loop-control","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","title":"Batch","summary":"Learn how to process asynchronous batches with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch"},{"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/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch"},{"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/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-core/start-batch","distance":0.1532},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","distance":0.1858},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","distance":0.1913},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","distance":0.1994},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","distance":0.2105}],"related":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","title":"Code Mode","summary":"Let models orchestrate AI SDK tools with sandboxed JavaScript and TypeScript.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search"},{"site":"vercel-web","path":"/blog/introducing-run"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2061},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2262},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.2361},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","distance":0.2384},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.2539}],"related":[{"site":"vercel-web","path":"/blog/introducing-run","via":"inbound"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","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":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","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":"/docs/getting-started/coding-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","title":"Decisions","summary":"Decide answers to Choice, Score, and Boolean questions against shared state.","outbound":[{"site":"vercel-kb","path":"/kb/guide/jev-ai-sdk-form-router"},{"site":"vercel-kb","path":"/kb/guide/typesafe-jev-and-ai-sdk"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry"},{"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":"/providers/ai-sdk-providers/anthropic"},{"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/typesafe-ai"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/guides/decide"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","distance":0.1163},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","distance":0.15},{"site":"eve","path":"/docs/guides/decide","distance":0.1653},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","distance":0.1696},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","distance":0.1935}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"inbound"},{"site":"eve","path":"/docs/guides/decide","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/decision","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/typesafe-ai-jev-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","title":"DevTools","summary":"Debug and inspect AI SDK applications with DevTools","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"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.1979},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2416},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2526},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.2603},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.261}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"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":"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/ai-sdk-core/embeddings","title":"Embeddings","summary":"Learn how to embed values with the AI SDK.","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"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.1387},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.1621},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.189},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2015},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.2116}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/embeddings","via":"inbound"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","title":"Error Handling","summary":"Learn how to handle errors in the AI SDK Core","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-stream-provider-error"}],"inbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.1639},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.199},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","distance":0.2226},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-stream-provider-error","distance":0.2306},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.2435}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","via":"inbound"},{"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-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","title":"File Uploads","summary":"Learn how to upload files and use provider references with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file"}],"inbound":[{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.1126},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.166},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.2025},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.2358},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.281}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-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/ai-sdk-core/provider-management","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/ai-sdk-core/generating-structured-data","title":"Generating Structured Data","summary":"Learn how to generate structured data with the AI SDK.","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/generating-text"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.0853},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.1621},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1835},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","distance":0.201},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","distance":0.202}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api/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/troubleshooting/tool-calling-with-structured-outputs","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":"/docs/ai-sdk-core/generating-text","title":"Generating Text","summary":"Learn how to generate text with the AI SDK.","outbound":[{"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/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"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/stripe-billing"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.2289},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2418},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2595},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.2735},{"site":"ai-sdk","path":"/cookbook/node/stream-text","distance":0.2766}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/stripe-billing","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","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/ai-sdk-core/image-generation","title":"Image Generation","summary":"Learn how to generate images with the AI SDK.","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"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2643},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.2734},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2749},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2894},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/black-forest-labs","distance":0.2963}],"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-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","title":"Lifecycle Callbacks","summary":"Observe AI SDK lifecycle events in generateText, streamText, embed, embedMany, rerank, and experimental_decide calls","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.2181},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2347},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2409},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","distance":0.2588},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2656}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","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/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","title":"MCP Apps","summary":"Learn how to connect to MCP Apps and render interactive tool UIs with the AI SDK.","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-core/mcp-tools"},{"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-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.1155},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.1371},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","distance":0.1523},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.1676},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.1899}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"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":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-events","title":"MCP Events","summary":"Understand the MCP webhook events contract and the AI SDK APIs for subscribing, verifying, and receiving events.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events","distance":0.2343},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2348},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2646},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2895},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2971}],"related":[{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","via":"neighbor"},{"site":"v0","path":"/docs/MCP","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-apps","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":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","title":"Model Context Protocol (MCP)","summary":"Learn how to connect to Model Context Protocol (MCP) servers and use their tools with AI SDK Core.","outbound":[{"site":"ai-sdk","path":"/cookbook/node/mcp-elicitation"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"}],"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"},{"site":"vercel-kb","path":"/kb/guide/build-a-shopify-mcp-agent-on-vercel"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2028},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.221},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2473},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2476},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2521}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-shopify-mcp-agent-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","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/mcp-apps","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","title":"Language Model Middleware","summary":"Learn how to use middleware to enhance the behavior of language models","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"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.1518},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","distance":0.2017},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","distance":0.2143},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.2168},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.2214}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/caching-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","title":"Overview","summary":"An overview of AI SDK Core.","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-core/settings"},{"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/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"},{"site":"vercel-docs","path":"/docs/ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.1247},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.1592},{"site":"ai-sdk","path":"/docs/introduction","distance":0.1813},{"site":"ai-sdk","path":"/docs/reference","distance":0.1957},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.2146}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","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":"/cookbook/guides/llama-3_1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","title":"Prompt Engineering","summary":"Learn how to develop prompts with AI SDK Core.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.1733},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2163},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering","distance":0.2238},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2241},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.2264}],"related":[{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/prompt-engineering","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":"Learn how to work with multiple providers and models","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"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/reference/ai-sdk-core/provider-registry","distance":0.1167},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","distance":0.1195},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1432},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.1604},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.1789}],"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":"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":"/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/realtime","title":"Realtime","summary":"Learn how to build realtime voice conversations with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime"},{"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"},{"site":"vercel-web","path":"/blog/ai-sdk-7"},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.1885},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","distance":0.208},{"site":"vercel-web","path":"/blog/ai-sdk-7","distance":0.2117},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.2297},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","distance":0.2362}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","title":"Reasoning","summary":"Learn how to control reasoning across providers with the top-level reasoning parameter.","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":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.1333},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.1609},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.1771},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.1914},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.226}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"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/models-and-providers/reasoning/amazon-bedrock","via":"neighbor"},{"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/amazon-bedrock","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","title":"Reranking","summary":"Learn how to rerank documents with the AI SDK.","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":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/rerank","distance":0.0592},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.1797},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","distance":0.1897},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.1985},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.2423}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/voyage-rerank-3-and-rerank-3-lite-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","title":"Runtime and Tool Context","summary":"Learn how runtime context, tool context, and telemetry context filtering work together.","outbound":[{"site":"ai-sdk","path":"/docs/agents/configuring-call-options"},{"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"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","distance":0.1589},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.2547},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2674},{"site":"ai-sdk","path":"/cookbook/next/track-agent-token-usage","distance":0.268},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2751}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","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","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","title":"Settings","summary":"Learn how to configure the AI SDK.","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/ai-sdk-core/overview"},{"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"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2167},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2341},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","distance":0.2576},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.2646},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2759}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","title":"Skill Uploads","summary":"Learn how to upload skills and use provider references with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill"}],"inbound":[{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.0894},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.1647},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.2025},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.2563},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2624}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"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-web","path":"/blog/agent-skills-explained-an-faq","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/ai-sdk-core/provider-management","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","title":"Speech","summary":"Learn how to generate speech from text with the AI SDK.","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/azure"},{"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/mistral"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/ai-voice-elements"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.1429},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.1612},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2086},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2087},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2157}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","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":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry","title":"Telemetry","summary":"Using OpenTelemetry with AI SDK Core","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":"vercel-changelog","path":"/changelog/ai-sdk-7"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.2588},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.3153},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","distance":0.3233},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.3287},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.3356}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"eve","path":"/docs/observability/otel","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/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","title":"Testing","summary":"Learn how to use AI SDK Core mock providers for testing.","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":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2108},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.2109},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2116},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2154},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2212}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","title":"Tool Search","summary":"Let models discover tools on demand, with direct calling or cache-preserving code mode.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-search"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-search"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-search","distance":0.0517},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.1945},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2222},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","distance":0.2268},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2314}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","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":"/cookbook/node/web-search-agent","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/ai-sdk-core/tools-and-tool-calling","title":"Tool Calling","summary":"Learn about tool calling and multi-step calls (using stopWhen) with AI SDK Core.","outbound":[{"site":"ai-sdk","path":"/cookbook/next/call-tools"},{"site":"ai-sdk","path":"/cookbook/node/call-tools"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools"},{"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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-choice-violation-error"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"}],"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/generating-text"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"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":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"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-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2246},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.2409},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2418},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2493},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2567}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","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-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":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","title":"Transcription","summary":"Learn how to transcribe audio with the AI SDK.","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/azure"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription"},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.1607},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.1612},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","distance":0.176},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.1823},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.1844}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","via":"inbound"},{"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/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","title":"Translation","summary":"Learn how to translate speech with the AI SDK.","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.0935},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2022},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.2063},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2376},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2398}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","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":"Learn how to generate videos with the AI SDK.","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":[{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.1154},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.148},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.1613},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.1776},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/heygen","distance":0.2026}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"inbound"},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","title":"Harness Adapters","summary":"Learn about the available AI SDK harness adapters.","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/cursor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot"},{"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/cursor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot"},{"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"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.0704},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.1489},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1656},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1688},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1715}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/adapters","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-agent","title":"HarnessAgent","summary":"Create and run AI SDK HarnessAgent sessions.","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/cursor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot"},{"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":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","distance":0.2264},{"site":"vercel-kb","path":"/kb/guide/openai-agents-api-vercel","distance":0.2768},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.2775},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.2777},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.2781}],"related":[{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/openai-agents-api-vercel","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","title":"Overview","summary":"Learn what AI SDK harnesses are and how they fit into the AI SDK.","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":"/providers/ai-sdk-harnesses","distance":0.094},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.1489},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.1637},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.1697},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.18}],"related":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","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/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","title":"Skills","summary":"Use skills with AI SDK harnesses.","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.1904},{"site":"eve","path":"/docs/skills","distance":0.2193},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.2698},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.2701},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.2703}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-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":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","title":"Terminal UI","summary":"Use @ai-sdk/tui with HarnessAgent.","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"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.1575},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.19},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.2172},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.2272},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.2455}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","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":"/docs/ai-sdk-harnesses/tools","title":"Tools","summary":"Use tools with AI SDK harnesses.","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/cursor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot"},{"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.1637},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1847},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1915},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.2006},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.2036}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","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":"/docs/ai-sdk-harnesses/ui","title":"UI","summary":"Use AI SDK harnesses with useChat.","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.1697},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.2077},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2208},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","distance":0.2272},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.2302}],"related":[{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","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":"/docs/ai-sdk-ui/chatbot-message-persistence","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/ai-sdk-harnesses/workflow-utilities","title":"Workflow Utilities","summary":"Run HarnessAgent turns as durable Workflow DevKit workflows.","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/overview","distance":0.183},{"site":"workflow","path":"/docs/ai","distance":0.2232},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.2379},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.239},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/ui","distance":0.242}],"related":[{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/code-transform","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","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/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","title":"Handling Authentication","summary":"Learn how to authenticate with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.2176},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2382},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2586},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2638},{"site":"ai-sdk","path":"/cookbook/rsc/stream-ui-record-token-usage","distance":0.2639}],"related":[{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","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":"/cookbook/rsc/stream-ui-record-token-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","title":"Error Handling","summary":"Learn how to handle errors with the AI SDK.","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-ui/error-handling","distance":0.1628},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.199},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","distance":0.2176},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2226},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2281}],"related":[{"site":"swr","path":"/docs/error-handling","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/ai-sdk-rsc/authentication","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","title":"Managing Generative UI State","summary":"Overview of the AI and UI states","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.1055},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1574},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1696},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1721},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.1725}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","title":"Handling Loading State","summary":"Overview of handling loading state with AI SDK RSC","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.1611},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.173},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.1758},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.1981},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1994}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","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","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","title":"Migrating from RSC to UI","summary":"Learn how to migrate from AI SDK RSC to AI SDK UI.","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-ui/chatbot"}],"inbound":[{"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-ui/chatbot","distance":0.2467},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.2567},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.2579},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.2672},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2696}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/streaming","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/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/multistep-interfaces","title":"Multistep Interfaces","summary":"Overview of Building Multistep Interfaces with AI SDK RSC","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/advanced/multistep-interfaces","distance":0.1801},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1962},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.1972},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1996},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2019}],"related":[{"site":"ai-sdk","path":"/docs/advanced/multistep-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"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":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","title":"Overview","summary":"An overview of AI SDK RSC.","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.0738},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.1401},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.1721},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.1762},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.1767}],"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/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/ai-sdk-rsc/saving-and-restoring-states","title":"Saving and Restoring States","summary":"Saving and restoring AI and UI states with onGetUIState and onSetAIState","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.1055},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","distance":0.1689},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1977},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","distance":0.2221},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.2365}],"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":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/restore-messages-from-database","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","title":"Streaming React Components","summary":"Overview of streaming RSCs","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.1325},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.1465},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1514},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.173},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1767}],"related":[{"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-rsc/loading-state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","title":"Streaming Values","summary":"Overview of streaming RSCs","outbound":[{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables"},{"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/reference/ai-sdk-rsc/create-streamable-value","distance":0.156},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.157},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.1596},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","distance":0.1704},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1762}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","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/ai-sdk-ui/chatbot","title":"Chatbot","summary":"Learn how to use the useChat hook.","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/rag-chatbot-production-architecture-on-vercel"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2226},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","distance":0.2274},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2327},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","distance":0.2442},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.2459}],"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":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","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/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","via":"inbound"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","title":"Chatbot Message Persistence","summary":"Learn how to store and load chat messages in a chatbot.","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/reference/ai-sdk-ui/use-chat","distance":0.1743},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.1908},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2055},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.208},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2085}],"related":[{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","title":"Chatbot Resume Streams","summary":"Learn how to resume chatbot streams after client disconnects.","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.1178},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.1506},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.1551},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","distance":0.1839},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.1908}],"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":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resume","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","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/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","title":"Chatbot Tool Usage","summary":"Learn how to use tools with the useChat hook.","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/getting-started/nextjs-app-router","distance":0.1774},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.1824},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.1977},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.2058},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.2199}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","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":"/docs/getting-started/nuxt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","title":"Completion","summary":"Learn how to use the useCompletion hook.","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.0802},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2158},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2432},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.2449},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.2694}],"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/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/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","title":"Error Handling","summary":"Learn how to handle errors in the AI SDK UI","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-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-ui-message-stream-error"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-unsupported-functionality-error"},{"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-rsc/error-handling","distance":0.1628},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.1887},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.2226},{"site":"chat-sdk","path":"/docs/error-handling","distance":0.2297},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.2359}],"related":[{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/generative-user-interfaces","title":"Generative User Interfaces","summary":"Learn how to build Generative UI with AI SDK UI.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","distance":0.1384},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.1678},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.1687},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1807},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","distance":0.1811}],"related":[{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","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":"/docs/ai-sdk-ui/message-metadata","title":"Message Metadata","summary":"Learn how to attach and use metadata with messages in AI SDK UI","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.2024},{"site":"chat-sdk","path":"/docs/api/message","distance":0.2448},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.2573},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.3031},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.3036}],"related":[{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","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/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","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/object-generation","title":"Object Generation","summary":"Learn how to use the useObject hook.","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":"/docs/reference/ai-sdk-ui/use-object","distance":0.103},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1112},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.1595},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","distance":0.1602},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","distance":0.1982}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-object","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","title":"Overview","summary":"An overview of AI SDK UI.","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.05},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.1431},{"site":"chat-sdk","path":"/docs/ai","distance":0.2001},{"site":"ai-sdk","path":"/docs/reference","distance":0.2011},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2033}],"related":[{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","title":"Reading UIMessage Streams","summary":"Learn how to read UIMessage streams.","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.1437},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.1866},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.206},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.209},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2273}],"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/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","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","title":"Stream Protocols","summary":"Learn more about the supported stream protocols in the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/advanced/caching"},{"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"},{"site":"vercel-changelog","path":"/changelog/build-chat-sdk-web-uis-in-vue-or-svelte"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.1591},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.1829},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.1937},{"site":"chat-sdk","path":"/docs/streaming","distance":0.1972},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.2046}],"related":[{"site":"vercel-changelog","path":"/changelog/build-chat-sdk-web-uis-in-vue-or-svelte","via":"inbound"},{"site":"chat-sdk","path":"/docs/streaming","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":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-multistep","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","title":"Streaming Custom Data","summary":"Learn how to stream custom data from the server to the client.","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.1591},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","distance":0.2024},{"site":"workflow","path":"/docs/ai/streaming-updates-from-tools","distance":0.2114},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","distance":0.2211},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2289}],"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":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","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/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","title":"Transport","summary":"Learn how to use custom transports with useChat.","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-ui/websocket-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-ui/websocket-chat-transport"},{"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.0795},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","distance":0.1086},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.1202},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.1239},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2094}],"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":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","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-ui/chatbot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/overview","title":"Overview","summary":"An overview of foundational concepts critical to understanding the AI SDK","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.1247},{"site":"ai-sdk","path":"/docs/introduction","distance":0.1641},{"site":"ai-sdk","path":"/docs/reference","distance":0.1933},{"site":"ai-sdk","path":"/docs/getting-started","distance":0.2059},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.212}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/prompts","title":"Prompts","summary":"Learn about the Prompt structure used in the AI SDK.","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/inputs-and-tools"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/audio-input"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/file-input"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/video-input"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/vision"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","distance":0.1733},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.2003},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.2154},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2156},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","distance":0.2167}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/audio-input","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/file-input","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/video-input","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/vision","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/foundations/provider-options","title":"Provider Options","summary":"Learn how to use provider-specific options to control reasoning, caching, and other advanced features.","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":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1604},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","distance":0.1609},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1682},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2083},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2129}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","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":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","title":"Providers and Models","summary":"Learn about the providers and models available in the AI SDK.","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/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/telnyx"},{"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.0622},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1794},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.1849},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1895},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.1946}],"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":"ai-sdk","path":"/providers/ai-sdk-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/foundations/streaming","title":"Streaming","summary":"Why use streaming for AI applications?","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.2094},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2201},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.2338},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2347},{"site":"ai-sdk","path":"/cookbook/rsc/stream-text-with-chat-prompt","distance":0.2353}],"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":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/foundations/tools","title":"Tools","summary":"Learn about tools with the AI SDK.","outbound":[{"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-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","distance":0.1562},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.16},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1606},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.1762},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","distance":0.177}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/what-is-an-llm-tool","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/getting-started","title":"Getting Started","summary":"Welcome to the AI SDK documentation!","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"},{"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-sdk"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference","distance":0.1804},{"site":"ai-sdk","path":"/cookbook/guides","distance":0.1966},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2016},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.2059},{"site":"ai-sdk","path":"/docs/troubleshooting","distance":0.2143}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"inbound"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/streaming","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","title":"Choosing a Provider","summary":"Learn how to configure and authenticate with AI providers in the AI SDK.","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":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1432},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.1682},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.1754},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.1781},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.1812}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","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/community-providers/aimlapi","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":"ai-sdk","path":"/docs/getting-started/coding-agents","title":"Coding Agents","summary":"Learn how to set up the AI SDK for use with coding agents, including installing skills, accessing bundled docs, and using DevTools.","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":[{"site":"vercel-kb","path":"/kb/guide/tanstack-intent"}],"requires":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1769},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.1905},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.1931},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","distance":0.1979},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2018}],"related":[{"site":"vercel-kb","path":"/kb/guide/tanstack-intent","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","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/agents/building-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/expo","title":"Expo","summary":"Learn how to build your first agent with the AI SDK and Expo.","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/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":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.0665},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0967},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.1143},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.1149},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.1166}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"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":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","title":"Navigating the Library","summary":"Learn how to navigate the AI SDK.","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":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.1401},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.1413},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.1431},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1556},{"site":"ai-sdk","path":"/docs/introduction","distance":0.1904}],"related":[{"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/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","title":"Next.js App Router","summary":"Learn how to build your first agent with the AI SDK and Next.js App Router.","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/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"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"}],"requires":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.0318},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.0581},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.0896},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.0967},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.1032}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"inbound"},{"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/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","title":"Next.js Pages Router","summary":"Learn how to build your first agent with the AI SDK and Next.js Pages Router.","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/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":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0318},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.07},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.0727},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.1154},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1166}],"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/chatbot-tool-usage","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","title":"Node.js","summary":"Learn how to build your first agent with the AI SDK and Node.js.","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":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"}],"requires":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","distance":0.1428},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","distance":0.1512},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1552},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.1586},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1606}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","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":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","title":"Vue.js (Nuxt)","summary":"Learn how to build your first agent with the AI SDK and Vue.js (Nuxt).","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":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"}],"requires":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0581},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.0727},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.0728},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.1144},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1149}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"inbound"},{"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":"/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":"Learn how to build your first agent with the AI SDK and Svelte.","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/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":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai"}],"requires":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.07},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.0728},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.0896},{"site":"ai-sdk","path":"/docs/getting-started/tanstack-start","distance":0.0937},{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.1143}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"inbound"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"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/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":"Learn how to build your first agent with the AI SDK and TanStack Start.","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/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":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"}],"requires":[{"site":"ai-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/expo","distance":0.0665},{"site":"ai-sdk","path":"/docs/getting-started/svelte","distance":0.0937},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","distance":0.1032},{"site":"ai-sdk","path":"/docs/getting-started/nuxt","distance":0.1144},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","distance":0.1154}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","via":"inbound"},{"site":"ai-sdk","path":"/docs/getting-started/expo","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/svelte","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-router","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/introduction","title":"AI SDK by Vercel","summary":"The AI SDK is the TypeScript toolkit for building AI applications and agents with React, Next.js, Vue, Svelte, Node.js, and more.","outbound":[{"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"},{"site":"vercel-web","path":"/blog/composable-ai-for-ecommerce-hands-on-with-vercels-ai-sdk"},{"site":"vercel-web","path":"/blog/how-to-build-agents-with-filesystems-and-bash"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.157},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.1641},{"site":"vercel-docs","path":"/docs/ai-sdk","distance":0.1749},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.1813},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.1841}],"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-web","path":"/blog/composable-ai-for-ecommerce-hands-on-with-vercels-ai-sdk","via":"inbound"},{"site":"vercel-web","path":"/blog/how-to-build-agents-with-filesystems-and-bash","via":"inbound"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides","title":"Migration Guides","summary":"Learn how to upgrade between Vercel AI versions.","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":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.1952},{"site":"ai-sdk","path":"/docs/migration-guides/versioning","distance":0.1984},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.1988},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.2368},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.2395}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","title":"Migrate AI SDK 3.0 to 3.1","summary":"Learn how to upgrade AI SDK 3.0 to 3.1.","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":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.1334},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.1347},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.2019},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.2074},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2127}],"related":[{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","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-3","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":"/cookbook/guides/llama-3_1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","title":"Migrate AI SDK 3.1 to 3.2","summary":"Learn how to upgrade AI SDK 3.1 to 3.2.","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":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.1328},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.1334},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.1651},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.1891},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.2352}],"related":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","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/migration-guides/migration-guide-4-1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","title":"Migrate AI SDK 3.2 to 3.3","summary":"Learn how to upgrade AI SDK 3.2 to 3.3.","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":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.1328},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.1347},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.1671},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.1947},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","distance":0.2335}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-4","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-1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","title":"Migrate AI SDK 3.3 to 3.4","summary":"Learn how to upgrade AI SDK 3.3 to 3.4.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.1002},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.1651},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.1671},{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.1988},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.2125}],"related":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","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-3","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","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-0","title":"Migrate AI SDK 3.4 to 4.0","summary":"Learn how to upgrade AI SDK 3.4 to 4.0.","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":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.1812},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","distance":0.2085},{"site":"vercel-web","path":"/blog/ai-sdk-5","distance":0.2512},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.2564},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.2864}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-4","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","title":"Migrate AI SDK 4.0 to 4.1","summary":"Learn how to upgrade AI SDK 4.0 to 4.1.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.1002},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.1705},{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.1952},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.2352},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.2631}],"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":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/versioning","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","title":"Migrate AI SDK 4.1 to 4.2","summary":"Learn how to upgrade AI SDK 4.1 to 4.2.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.1705},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","distance":0.1891},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-3","distance":0.1947},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","distance":0.2019},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.2125}],"related":[{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","title":"Migrate AI SDK 4.x to 5.0","summary":"Learn how to upgrade AI SDK 4.x to 5.0.","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":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"vercel-web","path":"/blog/ai-sdk-5","distance":0.2009},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.214},{"site":"vercel-web","path":"/blog/ai-sdk-6","distance":0.2203},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2444},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.2532}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","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-6-0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0-data","title":"Migrate Your Data to AI SDK 5.0","summary":"Learn how to migrate your persisted messages and chat data from AI SDK 4.x to 5.0.","outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/migrate-to-ai-gateway","distance":0.383},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.4122},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.42},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.4201},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","distance":0.4244}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/migrate-to-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-migration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"},{"site":"vercel-web","path":"/blog/incremental-migrations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","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/migration-guides/migration-guide-6-0","title":"Migrate AI SDK 5.x to 6.0","summary":"Learn how to upgrade AI SDK 5.x to 6.0.","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"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.1812},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","distance":0.2062},{"site":"vercel-web","path":"/blog/ai-sdk-5","distance":0.2083},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.214},{"site":"vercel-web","path":"/blog/ai-sdk-6","distance":0.2623}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-4","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0","title":"Migrate AI SDK 6.x to 7.0","summary":"Learn how to upgrade AI SDK 6.x to 7.0.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-7"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/build-a-shopify-mcp-agent-on-vercel"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.2062},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.2085},{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","distance":0.2708},{"site":"vercel-web","path":"/blog/ai-sdk-5","distance":0.2765},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.3065}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-shopify-mcp-agent-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-5","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","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/migration-guides/versioning","title":"Versioning","summary":"Understand how the AI SDK approaches versioning.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"requires":[{"site":"ai-sdk","path":"/docs/migration-guides"}],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.1984},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","distance":0.2615},{"site":"ai-sdk","path":"/docs/reference","distance":0.2648},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","distance":0.2649},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","distance":0.265}],"related":[{"site":"v0","path":"/docs/versions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-4","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-1","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-2","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-2","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference","title":"Reference","summary":"Reference documentation for the AI SDK","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1576},{"site":"ai-sdk","path":"/docs/getting-started","distance":0.1804},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.1815},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.1933},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.1957}],"related":[{"site":"ai-sdk","path":"/docs/getting-started","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":"/docs/advanced","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","title":"AI SDK Core","summary":"Reference documentation for the AI SDK Core","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cosine-similarity"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware"},{"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/extract-json-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-reasoning-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id"},{"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-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions"},{"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/json-schema"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-search"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview"},{"site":"ai-sdk","path":"/docs/reference"}],"requires":[{"site":"ai-sdk","path":"/docs/reference"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.1592},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1993},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.2109},{"site":"ai-sdk","path":"/docs/reference","distance":0.2112},{"site":"ai-sdk","path":"/docs/foundations/overview","distance":0.2165}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/overview","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":"Middleware that appends tool input examples to tool descriptions.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2017},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3039},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.3091},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","distance":0.31},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.3135}],"related":[{"site":"ai-sdk","path":"/docs/foundations/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/extract-json-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","title":"Agent (Interface)","summary":"API Reference for the Agent interface.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.1314},{"site":"ai-sdk","path":"/docs/agents/overview","distance":0.1754},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.1899},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.1976},{"site":"ai-sdk","path":"/docs/agents/subagents","distance":0.2018}],"related":[{"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/subagents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","title":"experimental_cancelBatch","summary":"API Reference for experimental_cancelBatch.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","distance":0.1785},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","distance":0.1794},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","distance":0.1975},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","distance":0.1994},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","distance":0.2176}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/cancellation","via":"neighbor"},{"site":"workflow","path":"/docs/internal/serializable-abort-controller","via":"neighbor"},{"site":"workflow","path":"/docs/changelog/batched-event-writes","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cosine-similarity","title":"cosineSimilarity","summary":"Calculate the cosine similarity between two vectors (API Reference)","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.3746},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.4204},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.4669},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.4683},{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","distance":0.4717}],"related":[{"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","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-too-many-embedding-values-for-call-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","title":"createAgentUIStream","summary":"API Reference for the createAgentUIStream utility.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.068},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","distance":0.1435},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.1807},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.1899},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2033}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","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-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","title":"createAgentUIStreamResponse","summary":"API Reference for the createAgentUIStreamResponse utility.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.068},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","distance":0.0926},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.1976},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.2145},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2195}],"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-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","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":"Create a customizable unique identifier generator (API Reference)","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","distance":0.13},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","distance":0.3578},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.376},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.3766},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.389}],"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":"ai-sdk","path":"/docs/advanced/sequential-generations","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-object","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-generated-file","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","title":"createMCPClient","summary":"Create a client for connecting to MCP servers","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-events"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.1811},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.2028},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2037},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2294},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2312}],"related":[{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","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":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","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":"Custom provider that uses models from a different provider (API Reference)","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1195},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry","distance":0.1837},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.1879},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2286},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2439}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","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/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","title":"experimental_decide","summary":"Decide answers to typed questions against shared state with a decision model.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","distance":0.15},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-refusal-error","distance":0.2184},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","distance":0.2451},{"site":"eve","path":"/docs/guides/decide","distance":0.2643},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-unsupported-question-type-error","distance":0.2704}],"related":[{"site":"eve","path":"/docs/guides/decide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/decision","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-refusal-error","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-unsupported-question-type-error","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":"/docs/reference/ai-sdk-core/default-generated-file","title":"DefaultGeneratedFile","summary":"API Reference for DefaultGeneratedFile.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.3635},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.3917},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","distance":0.4031},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.4048},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.4081}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","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":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","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/reference/ai-sdk-core/default-instructions-middleware","title":"defaultInstructionsMiddleware","summary":"Middleware that applies default instructions to language model calls","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.1437},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2666},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.2935},{"site":"eve","path":"/docs/instructions","distance":0.3151},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.337}],"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/reference/ai-sdk-core/add-tool-input-examples-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","title":"defaultSettingsMiddleware","summary":"Middleware that applies default settings for language models","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware","distance":0.1437},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.256},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2594},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.3033},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3209}],"related":[{"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/ai-sdk-core/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/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/dynamic-tool","title":"dynamicTool","summary":"Helper function for creating dynamic tools with unknown types","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.1699},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2396},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","distance":0.2421},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2427},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0","distance":0.2532}],"related":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","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":"/docs/troubleshooting/ontoolcall-type-narrowing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","title":"embed","summary":"API Reference for embed.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.1387},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","distance":0.1611},{"site":"ai-sdk","path":"/cookbook/node/embed-text","distance":0.2605},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.2931},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.3008}],"related":[{"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":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/embed-text","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed-many","title":"embedMany","summary":"API Reference for embedMany.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/embed","distance":0.1611},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.1621},{"site":"ai-sdk","path":"/cookbook/node/embed-text-batch","distance":0.2896},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.3052},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error","distance":0.3118}],"related":[{"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/embed-text-batch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","title":"extractJsonMiddleware","summary":"Middleware that extracts JSON from text content by stripping markdown code fences","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2388},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-reasoning-middleware","distance":0.2638},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.2934},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.301},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/add-tool-input-examples-middleware","distance":0.31}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","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/reference/ai-sdk-core/language-model-v2-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/extract-reasoning-middleware","title":"extractReasoningMiddleware","summary":"Middleware that extracts reasoning sections from generated text using configurable delimiters","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","distance":0.2638},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.3133},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.3404},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3641},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","distance":0.3714}],"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":"swr","path":"/docs/middleware","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/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/reasoning","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","title":"filterActiveTools","summary":"Filter a tool set to the currently active tools (API Reference)","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.2547},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","distance":0.3038},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.3149},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.3155},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","distance":0.3164}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","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":"v0","path":"/docs/api/v1/examples/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-ui/infer-ui-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/ai-sdk-core/tool-search","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","title":"generateId","summary":"Generate a unique identifier (API Reference)","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator","distance":0.13},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.3443},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.3493},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.3547},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","distance":0.3797}],"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":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/sequential-generations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-generated-file","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","title":"generateImage","summary":"API Reference for generateImage.","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":"/docs/reference/ai-sdk-core"},{"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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.216},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.225},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.275},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","distance":0.2766},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","distance":0.2853}],"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":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/generate-image-with-chat-prompt","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-core/generate-speech","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","title":"generateSpeech","summary":"API Reference for generateSpeech.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.1429},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","distance":0.2472},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","distance":0.2678},{"site":"ai-sdk","path":"/cookbook/node/generate-text","distance":0.2779},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.2808}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-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-text","title":"generateText","summary":"API Reference for generateText.","outbound":[],"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"},{"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-workflow/workflow-agent"},{"site":"ai-sdk","path":"/docs/troubleshooting/high-memory-usage-with-images"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.0581},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.2181},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2185},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","distance":0.2646},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2723}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/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":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","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/tool","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","title":"experimental_generateVideo","summary":"API Reference for experimental_generateVideo.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video"},{"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"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.1154},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video","distance":0.1645},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","distance":0.225},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2454},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/heygen","distance":0.2713}],"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-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","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-errors/ai-no-video-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","title":"experimental_getBatchResults","summary":"API Reference for experimental_getBatchResults.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","distance":0.1304},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","distance":0.1759},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","distance":0.1827},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","distance":0.1913},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","distance":0.2176}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","title":"experimental_getBatchStatus","summary":"API Reference for experimental_getBatchStatus.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","distance":0.1304},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","distance":0.1367},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","distance":0.1516},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","distance":0.1785},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","distance":0.1858}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","title":"experimental_getRealtimeToolDefinitions","summary":"API reference for experimental_getRealtimeToolDefinitions.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.2297},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2327},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","distance":0.2547},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.262},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.292}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","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/dynamic-tool","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":"API Reference for hasToolCall.","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count","distance":0.2424},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2579},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","distance":0.2652},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2758},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.2906}],"related":[{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","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/node/call-tools-in-parallel","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count","title":"isStepCount","summary":"API Reference for isStepCount.","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call","distance":0.2424},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","distance":0.2908},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","distance":0.3337},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.338},{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.3718}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors/step-not-registered-error","via":"neighbor"},{"site":"workflow","path":"/docs/errors/step-not-registered","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","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":"Helper function for creating JSON schemas","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.2188},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","distance":0.2542},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.3418},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3636},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.3678}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/output-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/json-ld","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":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","title":"LanguageModelV4Middleware","summary":"Middleware for enhancing language model behavior (API Reference)","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.1518},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.1631},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.256},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","distance":0.2565},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.2729}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-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/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/default-instructions-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","title":"experimental_listBatches","summary":"API Reference for experimental_listBatches.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","distance":0.1516},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","distance":0.1764},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","distance":0.1827},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","distance":0.1975},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","distance":0.2105}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","via":"neighbor"},{"site":"workflow","path":"/docs/changelog/batched-event-writes","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/loop-finished","title":"isLoopFinished","summary":"API Reference for isLoopFinished.","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":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/loop-control","distance":0.2223},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/has-tool-call","distance":0.2652},{"site":"ai-sdk","path":"/cookbook/node/manual-agent-loop","distance":0.2855},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/is-step-count","distance":0.2908},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2951}],"related":[{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"workflow","path":"/docs/ai/sleep-and-delays","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/reference/ai-sdk-core/agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","title":"MCP Apps","summary":"API reference for MCP Apps helpers in @ai-sdk/mcp.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.1155},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","distance":0.2091},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2312},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2379},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.2473}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-events","title":"MCP Events","summary":"Reference for experimental MCP event methods, the webhook handler, and subscription and storage types.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-events"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-events"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-events","distance":0.2343},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.3347},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","distance":0.3585},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.3816},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","distance":0.3948}],"related":[{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"chat-sdk","path":"/docs/modals","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-stdio-transport","title":"Experimental_StdioMCPTransport","summary":"Create a transport for Model Context Protocol (MCP) clients to communicate with MCP servers using standard input and output streams","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.306},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.3145},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.355},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-events","distance":0.3786},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.3919}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","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":"/docs/reference/ai-sdk-ui/mcp-app-renderer","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","title":"ModelMessage","summary":"Message types for AI SDK Core (API Reference)","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2003},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2025},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.2167},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.2585},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.266}],"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":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","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/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/prune-messages","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","title":"Output","summary":"API Reference for Output.","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-core"},{"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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.0853},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.165},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.1789},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.2227},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2235}],"related":[{"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":"/cookbook/next/generate-object","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":"API Reference for the pipeAgentUIStreamToResponse utility.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.0926},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.1435},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","distance":0.1618},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2555},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.2886}],"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-tui/run-agent-tui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/provider-registry","title":"createProviderRegistry","summary":"Registry for managing multiple providers and models (API Reference)","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1167},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","distance":0.1837},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2554},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2647},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2656}],"related":[{"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":"/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":"/docs/reference/ai-sdk-core/rerank","title":"rerank","summary":"API Reference for rerank.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.0592},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.2127},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","distance":0.2309},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2591},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.2883}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","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-changelog","path":"/changelog/voyage-rerank-3-and-rerank-3-lite-are-now-available-on-ai-gateway","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":"/docs/ai-sdk-core/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":"API Reference for safeValidateUIMessages","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","distance":0.0616},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2741},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.2845},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.3449},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.3534}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-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/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","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/sandbox","title":"Experimental_SandboxSession","summary":"API Reference for the Experimental_SandboxSession interface.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","distance":0.2973},{"site":"eve","path":"/docs/sandbox","distance":0.3002},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.3189},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.3204},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.3209}],"related":[{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/just-bash","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/microsandbox","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/default","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","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-ui/mcp-app-renderer","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","title":"simulateReadableStream","summary":"Create a ReadableStream that emits values with configurable delays","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.2528},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.2728},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.3017},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.3113},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.3185}],"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/ai-sdk-rsc/streaming-values","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":"Middleware that simulates streaming for non-streaming language models","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.244},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","distance":0.2528},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.2729},{"site":"ai-sdk","path":"/docs/ai-sdk-core/testing","distance":0.2866},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","distance":0.2934}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","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/testing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/extract-json-middleware","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","title":"smoothStream","summary":"Stream transformer for smoothing text and reasoning output","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2289},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.265},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-readable-stream","distance":0.2728},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2765},{"site":"ai-sdk","path":"/cookbook/node/stream-text","distance":0.2788}],"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":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/start-batch","title":"experimental_startBatch","summary":"API Reference for experimental_startBatch.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","distance":0.1367},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","distance":0.1532},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","distance":0.1759},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","distance":0.1764},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","distance":0.1794}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-status","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-batch-results","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/list-batches","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/cancel-batch","via":"neighbor"},{"site":"workflow","path":"/docs/changelog/batched-event-writes","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":"API Reference for streamText.","outbound":[],"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"},{"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":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"workflow","path":"/docs/ai"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.0581},{"site":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","distance":0.2347},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.2394},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.2546},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text","distance":0.2595}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","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":"ai-sdk","path":"/docs/ai-sdk-core/lifecycle-callbacks","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","title":"experimental_streamTranscribe","summary":"API Reference for experimental_streamTranscribe.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","distance":0.1236},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.1823},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","distance":0.2063},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","distance":0.2166},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2554}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-translate","title":"experimental_streamTranslate","summary":"API Reference for experimental_streamTranslate.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation","distance":0.0935},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.1236},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2623},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","distance":0.265},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.273}],"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":"streamdown","path":"/docs/internationalization","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/smooth-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","title":"tool","summary":"Helper function for tool type inference","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.1699},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.221},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.224},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","distance":0.2314},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","distance":0.2327}],"related":[{"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/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","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-loop-agent","title":"ToolLoopAgent","summary":"API Reference for the ToolLoopAgent class.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","distance":0.1585},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2172},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-text","distance":0.2185},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2394},{"site":"ai-sdk","path":"/docs/agents/building-agents","distance":0.2549}],"related":[{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","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":"/docs/agents/workflow-agent","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-search","title":"toolSearch","summary":"Search deferred tools and load their definitions on demand for direct calling or code mode.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tool-search","distance":0.0517},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2478},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","distance":0.2542},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2593},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2716}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","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":"/docs/ai-sdk-core/code-mode","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/transcribe","title":"transcribe","summary":"API Reference for transcribe.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.176},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","distance":0.2166},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2444},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","distance":0.2678},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2681}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","title":"UIMessage","summary":"API Reference for UIMessage","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.2167},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2452},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","distance":0.2554},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","distance":0.2573},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","distance":0.2823}],"related":[{"site":"eve","path":"/docs/guides/frontend/overview","via":"inbound"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-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/validate-ui-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","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/upload-file","title":"uploadFile","summary":"API Reference for uploadFile.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.1126},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","distance":0.2681},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","distance":0.2912},{"site":"chat-sdk","path":"/docs/files","distance":0.3351},{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.3495}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-file-uploads","via":"neighbor"},{"site":"chat-sdk","path":"/docs/files","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":"/docs/reference/ai-sdk-core/default-generated-file","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-skill","title":"uploadSkill","summary":"API Reference for uploadSkill.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","distance":0.0894},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.2358},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.2681},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.2698},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","distance":0.3043}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/skill-uploads","via":"neighbor"},{"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":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","title":"valibotSchema","summary":"Helper function for creating Valibot schemas","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","distance":0.2542},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.3702},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.4156},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.4287},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.4443}],"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-changelog","path":"/changelog/schema-autocomplete-and-validation-for-vercel-json","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","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/next/stream-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/validate-ui-messages","title":"validateUIMessages","summary":"API Reference for validateUIMessages","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages","distance":0.0616},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.2554},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.2636},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.333},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.3367}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/safe-validate-ui-messages","via":"neighbor"},{"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":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","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-message-persistence","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/wrap-image-model","title":"wrapImageModel","summary":"Function for wrapping an image model with middleware (API Reference)","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","distance":0.1581},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.2565},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2972},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3586},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.365}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-language-model","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/simulate-streaming-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/wrap-language-model","title":"wrapLanguageModel","summary":"Function for wrapping a language model with middleware (API Reference)","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","distance":0.1581},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/language-model-v2-middleware","distance":0.1631},{"site":"ai-sdk","path":"/docs/ai-sdk-core/middleware","distance":0.2214},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-settings-middleware","distance":0.3033},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/simulate-streaming-middleware","distance":0.3102}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model","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/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":"Helper function for creating Zod schemas","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","distance":0.2188},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","distance":0.353},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","distance":0.3702},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","distance":0.376},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.3812}],"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":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/valibot-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","title":"AI SDK Errors","summary":"Reference for AI SDK error classes and typed error handling.","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-approval-signature-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-stream-provider-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-tool-choice-violation-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"},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error"},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling"}],"requires":[{"site":"ai-sdk","path":"/docs/reference"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","distance":0.1887},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.2322},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-stream-provider-error","distance":0.2404},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.2417},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.2435}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","title":"AI_APICallError","summary":"Learn how to fix AI_APICallError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.232},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2418},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2621},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.2634},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.2643}],"related":[{"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-invalid-data-content-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-decision-refusal-error","title":"AI_DecisionRefusalError","summary":"Identify decision questions that a model declined to answer.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-unsupported-question-type-error","distance":0.1619},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","distance":0.2184},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.2803},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","distance":0.2979},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.304}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-unsupported-question-type-error","via":"neighbor"},{"site":"eve","path":"/docs/guides/decide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","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-decision-unsupported-question-type-error","title":"AI_DecisionUnsupportedQuestionTypeError","summary":"Identify a decision question type that a model does not support.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-refusal-error","distance":0.1619},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.2701},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","distance":0.2704},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.2834},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","distance":0.3073}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-refusal-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-core/decide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","title":"AI_DownloadError","summary":"Learn how to fix AI_DownloadError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","distance":0.232},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2411},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","distance":0.2462},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2517},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2528}],"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-load-setting-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-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-empty-response-body-error","title":"AI_EmptyResponseBodyError","summary":"Learn how to fix AI_EmptyResponseBodyError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2197},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2546},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","distance":0.2685},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.279},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.2815}],"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-api-call-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-output-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","title":"AI_InvalidArgumentError","summary":"Learn how to fix AI_InvalidArgumentError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.1822},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.1966},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.201},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2134},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-prompt-error","distance":0.2273}],"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-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-tool-input-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-invalid-data-content-error","title":"AI_InvalidDataContentError","summary":"How to fix AI_InvalidDataContentError","outbound":[{"site":"ai-sdk","path":"/docs/foundations/prompts"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.1373},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-prompt-error","distance":0.1641},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.184},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.1966},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2102}],"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-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-message-role-error","title":"AI_InvalidMessageRoleError","summary":"Learn how to fix AI_InvalidMessageRoleError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.201},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2063},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.2102},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.2321},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2463}],"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-invalid-data-content-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-prompt-error","title":"AI_InvalidPromptError","summary":"Learn how to fix AI_InvalidPromptError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.1641},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2273},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2394},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2522},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2728}],"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-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-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-response-data-error","title":"AI_InvalidResponseDataError","summary":"Learn how to fix AI_InvalidResponseDataError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.1373},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.1822},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2063},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-empty-response-body-error","distance":0.2197},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2358}],"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-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-empty-response-body-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-tool-approval-error","title":"AI_InvalidToolApprovalError","summary":"Learn how to fix AI_InvalidToolApprovalError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.0587},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.1001},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.1292},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.1865},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.2087}],"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":"Learn how to fix AI_InvalidToolApprovalSignatureError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.0587},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.1337},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.1564},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.2076},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2096}],"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":"Learn how to fix AI_InvalidToolInputError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.1292},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.1531},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.1564},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.1696},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-choice-violation-error","distance":0.2114}],"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-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-tool-choice-violation-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","title":"AI_JSONParseError","summary":"Learn how to fix AI_JSONParseError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.2576},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2656},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.2663},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.268},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.2799}],"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-invalid-argument-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-speech-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","title":"AI_LoadAPIKeyError","summary":"Learn how to fix AI_LoadAPIKeyError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","distance":0.1537},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","distance":0.267},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.2802},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2829},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2914}],"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-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-no-content-generated-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-load-setting-error","title":"AI_LoadSettingError","summary":"Learn how to fix AI_LoadSettingError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-api-key-error","distance":0.1537},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.2462},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2557},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.2713},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2737}],"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-download-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-no-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","title":"AI_MessageConversionError","summary":"Learn how to fix AI_MessageConversionError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2321},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.2476},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-json-parse-error","distance":0.2576},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2619},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-load-setting-error","distance":0.2713}],"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-translation-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-no-content-generated-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-no-content-generated-error","title":"AI_NoContentGeneratedError","summary":"Learn how to fix AI_NoContentGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.1274},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.1321},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.1354},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1522},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.1548}],"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-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-speech-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","title":"AI_NoImageGeneratedError","summary":"Learn how to fix AI_NoImageGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.0938},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1274},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.131},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.1483},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1606}],"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-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-object-generated-error","title":"AI_NoObjectGeneratedError","summary":"Learn how to fix AI_NoObjectGeneratedError","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.131},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.1358},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.1365},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1548},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1615}],"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-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-content-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":"Learn how to fix AI_NoOutputGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1321},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.1358},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.146},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.1483},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.1484}],"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-speech-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-translation-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","title":"AI_NoSpeechGeneratedError","summary":"Learn how to fix AI_NoSpeechGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.0735},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","distance":0.1208},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.1332},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.146},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1522}],"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-output-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":"Learn how to fix AI_NoSuchModelError","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.1458},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.1985},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.2116},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.229},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.2317}],"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-video-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-object-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","title":"AI_NoSuchProviderError","summary":"Learn how to fix AI_NoSuchProviderError","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.096},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.1458},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2348},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2351},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.2375}],"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":"Learn how to fix AI_NoSuchProviderReferenceError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.096},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.2144},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.2317},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2351},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.2454}],"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-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-image-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","title":"AI_NoSuchToolError","summary":"Learn how to fix AI_NoSuchToolError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.1531},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.1829},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.1865},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.1982},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.1985}],"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-repair-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-tool-call-not-found-for-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-no-transcript-generated-error","title":"AI_NoTranscriptGeneratedError","summary":"Learn how to fix AI_NoTranscriptGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","distance":0.1055},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1208},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.1544},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.1704},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1728}],"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-speech-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-content-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-translation-generated-error","title":"AI_NoTranslationGeneratedError","summary":"Learn how to fix AI_NoTranslationGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/translation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.0735},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-transcript-generated-error","distance":0.1055},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.1484},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-video-generated-error","distance":0.1597},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.1692}],"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":"Learn how to fix AI_NoVideoGeneratedError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.0938},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-speech-generated-error","distance":0.1332},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.1354},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.1365},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-output-generated-error","distance":0.1542}],"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-speech-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-output-generated-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-retry-error","title":"AI_RetryError","summary":"Learn how to fix AI_RetryError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","distance":0.2675},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-api-call-error","distance":0.2677},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-message-conversion-error","distance":0.3045},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.3143},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.3146}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-download-error","via":"neighbor"},{"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-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-invalid-argument-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-stream-provider-error","title":"AI_StreamProviderError","summary":"Learn how to handle AI_StreamProviderError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.2306},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.2404},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.2479},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.2679},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error","distance":0.2702}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","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-no-such-provider-reference-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error","title":"AI_TooManyEmbeddingValuesForCallError","summary":"Learn how to fix AI_TooManyEmbeddingValuesForCallError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-reference-error","distance":0.2914},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.292},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","distance":0.2952},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2976},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3061}],"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-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-image-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","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","title":"AI_ToolCallNotFoundForApprovalError","summary":"Learn how to fix AI_ToolCallNotFoundForApprovalError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.1001},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.1337},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.1841},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.1982},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","distance":0.2218}],"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/troubleshooting/missing-tool-results-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","title":"ToolCallRepairError","summary":"Learn how to fix AI SDK ToolCallRepairError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.1696},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.1829},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.1841},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.2076},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.2087}],"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-tool-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-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-tool-choice-violation-error","title":"ToolChoiceViolationError","summary":"Learn how to fix AI SDK ToolChoiceViolationError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-tool-error","distance":0.2058},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.2106},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2114},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","distance":0.224},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-error","distance":0.2324}],"related":[{"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-input-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-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":"Learn how to fix AI_TypeValidationError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.2529},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2582},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","distance":0.2643},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2702},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.273}],"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-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-message-role-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-ui-message-stream-error","title":"AI_UIMessageStreamError","summary":"Learn how to fix AI_UIMessageStreamError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.2668},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-stream-provider-error","distance":0.2702},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.2707},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.2908},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.2952}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-stream-provider-error","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-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-errors/ai-unsupported-functionality-error","title":"AI_UnsupportedFunctionalityError","summary":"Learn how to fix AI_UnsupportedFunctionalityError","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-argument-error","distance":0.2979},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-message-role-error","distance":0.2988},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-content-generated-error","distance":0.3072},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-data-content-error","distance":0.3131},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-response-data-error","distance":0.3159}],"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-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-invalid-data-content-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-rsc","title":"AI SDK RSC","summary":"Reference documentation for the AI SDK RSC","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui"},{"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/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-ui-state"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview"},{"site":"ai-sdk","path":"/docs/reference"}],"requires":[{"site":"ai-sdk","path":"/docs/reference"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.0738},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.1556},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.1574},{"site":"ai-sdk","path":"/docs/reference","distance":0.1576},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.1929}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","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":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","title":"createAI","summary":"Reference for the createAI function from the AI SDK RSC","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/reference/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.209},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2216},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.2449},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2456},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.2731}],"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/ai-sdk-rsc/saving-and-restoring-states","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","title":"createStreamableUI","summary":"Reference for the createStreamableUI function from the AI SDK RSC","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/reference/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.1596},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.1722},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","distance":0.1942},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.2224},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.2235}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","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/use-streamable-value","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","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-value","title":"createStreamableValue","summary":"Reference for the createStreamableValue function from the AI SDK RSC","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"},{"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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","distance":0.0953},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.1074},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.156},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.1722},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.3329}],"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/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":"/docs/advanced/multiple-streamables","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","title":"getAIState","summary":"Reference for the getAIState function from the AI SDK RSC","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/reference/ai-sdk-rsc"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.1252},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.1448},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","distance":0.2298},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2885},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.2943}],"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":"eve","path":"/docs/concepts/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-rsc/get-mutable-ai-state","title":"getMutableAIState","summary":"Reference for the getMutableAIState function from the AI SDK RSC","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/reference/ai-sdk-rsc"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.1252},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.1975},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","distance":0.2694},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2721},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2747}],"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":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","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":"/docs/reference/ai-sdk-rsc/read-streamable-value","title":"readStreamableValue","summary":"Reference for the readStreamableValue function from the AI SDK RSC","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-streamable-value","distance":0.0931},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.1074},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.157},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.2235},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.3037}],"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":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render","title":"render (Removed)","summary":"Reference for the render function from the AI SDK RSC","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","distance":0.2517},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.2656},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.312},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.3157},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.3164}],"related":[{"site":"streamdown","path":"/docs/custom-renderers","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/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-3-1","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","title":"streamUI","summary":"Reference for the streamUI function from the AI SDK RSC","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/render"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.1465},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","distance":0.174},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.1829},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.2005},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.2033}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","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-rsc/use-actions","title":"useActions","summary":"Reference for the useActions function from the AI SDK RSC","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/reference/ai-sdk-rsc"},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","distance":0.2377},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","distance":0.3016},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.3218},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.3273},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","distance":0.3291}],"related":[{"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/api-reference/directives/use-server","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","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":"Reference for the useAIState function from the AI SDK RSC","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/reference/ai-sdk-rsc"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","distance":0.1206},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.1448},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.1975},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2184},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2365}],"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":"eve","path":"/docs/concepts/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-rsc/use-streamable-value","title":"useStreamableValue","summary":"Reference for the useStreamableValue function from the AI SDK RSC","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-streamable-value","distance":0.0931},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-value","distance":0.0953},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-values","distance":0.1704},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui","distance":0.1942},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.2698}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/read-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":"/docs/advanced/multiple-streamables","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/stream-ui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ui-state","title":"useUIState","summary":"Reference for the useUIState function from the AI SDK RSC","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/reference/ai-sdk-rsc"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-ai-state","distance":0.1206},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.2219},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-ai-state","distance":0.2298},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/saving-and-restoring-states","distance":0.2491},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/get-mutable-ai-state","distance":0.2694}],"related":[{"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/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/get-mutable-ai-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","title":"AI SDK TUI","summary":"Reference documentation for @ai-sdk/tui","outbound":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference"}],"requires":[{"site":"ai-sdk","path":"/docs/reference"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.1233},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","distance":0.1777},{"site":"ai-sdk","path":"/docs/reference","distance":0.2013},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","distance":0.2172},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.2306}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui/run-agent-tui","title":"runAgentTUI","summary":"API Reference for the runAgentTUI function.","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/terminal-ui","distance":0.0827},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.1777},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/terminal-ui","distance":0.19},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","distance":0.2097},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.227}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","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/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/configuring-call-options","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","title":"AI SDK UI","summary":"Reference documentation for the AI SDK UI","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/prune-messages"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream"},{"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":"/docs/reference/ai-sdk-ui/use-realtime"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview"},{"site":"ai-sdk","path":"/docs/reference"}],"requires":[{"site":"ai-sdk","path":"/docs/reference"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.05},{"site":"ai-sdk","path":"/docs/getting-started/navigating-the-library","distance":0.1413},{"site":"ai-sdk","path":"/docs/reference","distance":0.1815},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.1945},{"site":"ai-sdk","path":"/docs/introduction","distance":0.1957}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","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":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","title":"convertToModelMessages","summary":"Convert useChat messages to ModelMessages for AI functions (API Reference)","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/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.1872},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.2025},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2372},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","distance":0.2395},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2416}],"related":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","title":"createUIMessageStream","summary":"API Reference for createUIMessageStream.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.1506},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.1665},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.1807},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.1866},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.2402}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","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/create-agent-ui-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-response","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","title":"createUIMessageStreamResponse","summary":"API Reference for createUIMessageStreamResponse.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.1665},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","distance":0.2019},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.2145},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/read-ui-message-stream","distance":0.2621},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.2748}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","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":"API Reference for the DirectChatTransport class.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.0795},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","distance":0.1717},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.1741},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.1837},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2039}],"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":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","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":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool","title":"InferUITool","summary":"API Reference for InferUITool.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","distance":0.066},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2354},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/ui-message","distance":0.3061},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.3065},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3412}],"related":[{"site":"chat-sdk","path":"/docs/ai/types","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/foundations/tools","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-core/get-realtime-tool-definitions","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tools","title":"InferUITools","summary":"API Reference for InferUITools.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/infer-ui-tool","distance":0.066},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool","distance":0.2712},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/filter-active-tools","distance":0.3038},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.325},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3291}],"related":[{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-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/dynamic-tool","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/ui-message","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/mcp-app-renderer","title":"experimental_MCPAppRenderer","summary":"API reference for rendering MCP Apps with @ai-sdk/react.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.1371},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/mcp-apps","distance":0.2091},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","distance":0.2587},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.283},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","distance":0.2909}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/running-next-js-inside-chatgpt-a-deep-dive-into-native-app-integration","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/advanced/rendering-ui-with-language-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/pipe-ui-message-stream-to-response","title":"pipeUIMessageStreamToResponse","summary":"Learn to use pipeUIMessageStreamToResponse helper function to pipe streaming data to a ServerResponse object.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/pipe-agent-ui-stream-to-response","distance":0.1618},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.2019},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream-response","distance":0.2769},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.2949},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.3071}],"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-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/create-ui-message-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/prune-messages","title":"pruneMessages","summary":"API Reference for pruneMessages.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.283},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","distance":0.3275},{"site":"ai-sdk","path":"/cookbook/guides/agent-context-compaction","distance":0.3298},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.3348},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.3455}],"related":[{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","via":"neighbor"},{"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/restore-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","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/reference/ai-sdk-core/validate-ui-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/reference/ai-sdk-ui/read-ui-message-stream","title":"readUIMessageStream","summary":"API Reference for readUIMessageStream.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/reading-ui-message-streams","distance":0.1437},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.1506},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","distance":0.2362},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream-response","distance":0.2621},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-ui-message-stream-error","distance":0.2908}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","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":"API reference for the useChat hook.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.1743},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.1862},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.2039},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","distance":0.2072},{"site":"chat-sdk","path":"/docs/ai","distance":0.209}],"related":[{"site":"workflow","path":"/docs/ai","via":"inbound"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","via":"inbound"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-completion","title":"useCompletion","summary":"API reference for the useCompletion hook.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion","distance":0.0802},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.2626},{"site":"ai-sdk","path":"/cookbook/next/stream-text","distance":0.2837},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.2938},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.3134}],"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":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","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/reference/ai-sdk-ui/use-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-object","title":"useObject","summary":"API reference for the useObject hook.","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":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","distance":0.103},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.2044},{"site":"ai-sdk","path":"/cookbook/next/generate-object","distance":0.2525},{"site":"ai-sdk","path":"/cookbook/node/stream-object","distance":0.2664},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.2694}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-object","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","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/node/generate-object","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","title":"experimental_useRealtime","summary":"API reference for the experimental_useRealtime hook.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/realtime","distance":0.208},{"site":"vercel-web","path":"/blog/ai-sdk-7","distance":0.2362},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime/gpt-live","distance":0.2529},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.2865},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-4-0","distance":0.3018}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime/gpt-live","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-5","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-transcribe","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/get-realtime-tool-definitions","via":"inbound"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","title":"WebSocketChatTransport","summary":"API Reference for the WebSocketChatTransport class.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.1086},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport","distance":0.1513},{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.1542},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.1717},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2072}],"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":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","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/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-ui/chatbot-resume-streams","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","title":"AI SDK Workflow","summary":"Reference documentation for @ai-sdk/workflow","outbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-chat-transport"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference"}],"requires":[{"site":"ai-sdk","path":"/docs/reference"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-ai","distance":0.1684},{"site":"workflow","path":"/docs/ai","distance":0.1843},{"site":"ai-sdk","path":"/docs/reference","distance":0.1976},{"site":"workflow","path":"/docs/api-reference","distance":0.2339},{"site":"workflow","path":"/docs/ai/chat-session-modeling","distance":0.2396}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/ai/defining-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video","title":"generateVideo","summary":"API Reference for durable video generation in workflows.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.1645},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2233},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","distance":0.2483},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-asynchronous-video-generation","distance":0.2807},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2988}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-asynchronous-video-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":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","title":"WorkflowAgent","summary":"API Reference for the WorkflowAgent class.","outbound":[{"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/reference/ai-sdk-core/generate-text"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent"}],"inbound":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/tool-loop-agent","distance":0.1585},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.1635},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/agent","distance":0.2037},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","distance":0.2431},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","distance":0.2546}],"related":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/tools/workflows","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-core/stream-text","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","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-workflow/workflow-chat-transport","title":"WorkflowChatTransport","summary":"API Reference for the WorkflowChatTransport class.","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"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"requires":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow"}],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-ai/workflow-chat-transport","distance":0.0647},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.1202},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.1272},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","distance":0.1513},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.1741}],"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":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-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","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting","title":"Troubleshooting","summary":"Troubleshooting information for common issues encountered with the AI SDK.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference","distance":0.2008},{"site":"ai-sdk","path":"/docs/getting-started","distance":0.2143},{"site":"ai-sdk","path":"/docs/advanced","distance":0.2245},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","distance":0.2655},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","distance":0.2662}],"related":[{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-tui","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","title":"Abort and resumable streams","summary":"Troubleshooting abort and stop behavior with resumable streams","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.1178},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.1575},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2411},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","distance":0.2415},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.2432}],"related":[{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"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":"v0","path":"/docs/api/v1/reference/chats/resume","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":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","title":"Azure OpenAI Slow to Stream","summary":"Learn to troubleshoot Azure OpenAI slow to stream issues.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-text"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","distance":0.2871},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.2956},{"site":"ai-sdk","path":"/docs/foundations/streaming","distance":0.2995},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.3038},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","distance":0.3226}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/api-servers/fastify","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","title":"Server Action Plain Objects Error","summary":"Troubleshooting errors related to using AI SDK Core functions with Server Actions.","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","distance":0.2496},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.2727},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.3116},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.3189},{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","distance":0.3213}],"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-updates-to-visual-interfaces","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","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":"Troubleshooting high memory usage when using generateText or streamText with many images","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","distance":0.326},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","distance":0.3468},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","distance":0.3476},{"site":"ai-sdk","path":"/docs/foundations/streaming","distance":0.3584},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.3629}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-text-with-image-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/streaming","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","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/jest-cannot-find-module-ai-rsc","title":"Jest: cannot find module '@ai-sdk/rsc'","summary":"Troubleshooting AI SDK errors related to the Jest: cannot find module '@ai-sdk/rsc' error","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","distance":0.3111},{"site":"ai-sdk","path":"/docs/troubleshooting","distance":0.3569},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","distance":0.3846},{"site":"ai-sdk","path":"/docs/advanced","distance":0.4089},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","distance":0.4121}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","title":"Missing Tool Results Error","summary":"How to fix the \"Tool results are missing for tool calls\" error when using the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","distance":0.1671},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-not-found-for-approval-error","distance":0.2218},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-choice-violation-error","distance":0.224},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.2258},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-approval-signature-error","distance":0.2341}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","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-choice-violation-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","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","title":"Model is not assignable to type \"LanguageModelV1\"","summary":"Troubleshooting errors related to incompatible models.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","distance":0.2259},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-model-error","distance":0.2864},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.3225},{"site":"ai-sdk","path":"/providers/community-providers","distance":0.3376},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error","distance":0.3412}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","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-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-too-many-embedding-values-for-call-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","title":"Object generation failed with OpenAI","summary":"Troubleshooting NoObjectGeneratedError with finish-reason content-filter caused by incompatible Zod schema types when using OpenAI structured outputs","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.2469},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.2529},{"site":"ai-sdk","path":"/cookbook/node/generate-object","distance":0.2672},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-object-generated-error","distance":0.2758},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","distance":0.3021}],"related":[{"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/ai-no-object-generated-error","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/generate-object-reasoning","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":"How to handle TypeScript type errors when using the onToolCall callback","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/dynamic-tool","distance":0.2421},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","distance":0.2534},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-call-repair-error","distance":0.2682},{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","distance":0.2703},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","distance":0.2975}],"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/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/tool-calling-with-structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-invalid-tool-input-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","title":"React error \"Maximum update depth exceeded\"","summary":"Troubleshooting errors related to the \"Maximum update depth exceeded\" error.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.3312},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","distance":0.3319},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.3336},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","distance":0.3411},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.3472}],"related":[{"site":"v0","path":"/docs/api/v1/examples/react-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","title":"Repeated assistant messages in useChat","summary":"Troubleshooting duplicate assistant messages when using useChat with streamText","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.2547},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.277},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","distance":0.2841},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2841},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.2842}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","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/use-chat-tools-no-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","title":"Server Actions in Client Components","summary":"Troubleshooting errors related to server actions in client components.","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions","distance":0.2377},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","distance":0.2496},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2597},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.29},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","distance":0.2924}],"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/getting-started/mutating-data","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/serverActions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","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":"How to fix strange stream output in the UI","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.1547},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.2551},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.256},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2598},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2825}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","title":"onEnd not called when stream is aborted","summary":"Troubleshooting onEnd callback not executing when streams are aborted with toUIMessageStream","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","distance":0.1942},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","distance":0.2415},{"site":"ai-sdk","path":"/docs/ai-sdk-core/error-handling","distance":0.2465},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.289},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","distance":0.3152}],"related":[{"site":"ai-sdk","path":"/docs/advanced/stopping-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/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/create-ui-message-stream","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","title":"streamText fails silently","summary":"Troubleshooting errors related to the streamText function not working.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.2349},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.2394},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2559},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.256},{"site":"ai-sdk","path":"/cookbook/node/stream-text","distance":0.2646}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","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":"/cookbook/node/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","title":"Streamable UI Errors","summary":"Troubleshooting errors related to streamable UI.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.2299},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.2836},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.2897},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","distance":0.3213},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.322}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/client-stream-error","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","title":"Streaming Not Working When Deployed","summary":"Troubleshooting streaming issues in deployed apps.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","distance":0.1717},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","distance":0.2871},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.305},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.3051},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.3136}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-proxied","title":"Streaming Not Working When Proxied","summary":"Troubleshooting streaming issues in proxied apps.","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","distance":0.1717},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","distance":0.324},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","distance":0.3432},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.3486},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.3494}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-not-working-when-deployed","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/azure-stream-slow","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","title":"Streaming Status Shows But No Text Appears","summary":"Why useChat shows \"streaming\" status without any visible content","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","distance":0.2217},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.2374},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","distance":0.2433},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","distance":0.2547},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.2551}],"related":[{"site":"ai-sdk","path":"/cookbook/next/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-text-with-chat-prompt","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/timeout-on-vercel","title":"Getting Timeouts When Deploying on Vercel","summary":"Learn how to fix timeouts and cut off responses when deploying to Vercel.","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","distance":0.2263},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","distance":0.2423},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","distance":0.2725},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2814},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","distance":0.2925}],"related":[{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-should-i-do-if-i-receive-a-503-error-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/investigate-latency-issues-and-slowness","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-docs","path":"/docs/functions","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":"Troubleshooting tool calling when combined with structured output generation","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.201},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.236},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","distance":0.2454},{"site":"ai-sdk","path":"/cookbook/node/call-tools-in-parallel","distance":0.2517},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","distance":0.2537}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/call-tools-multiple-steps","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/reference/ai-sdk-core/output","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-invocation-missing-result","title":"Tool Invocation Missing Result Error","summary":"How to fix the \"ToolInvocation must have a result\" error when using tools without execute functions","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/missing-tool-results-error","distance":0.1671},{"site":"ai-sdk","path":"/cookbook/node/call-tools","distance":0.2129},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","distance":0.2534},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","distance":0.2537},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-choice-violation-error","distance":0.271}],"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/troubleshooting/ontoolcall-type-narrowing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/tool-calling-with-structured-outputs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-tool-choice-violation-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","title":"TypeScript error \"Cannot find namespace 'JSX'\"","summary":"Troubleshooting errors related to TypeScript and JSX.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/jest-cannot-find-module-ai-rsc","distance":0.3111},{"site":"ai-sdk","path":"/docs/troubleshooting/react-maximum-update-depth-exceeded","distance":0.3411},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","distance":0.3603},{"site":"ai-sdk","path":"/docs/troubleshooting","distance":0.3632},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","distance":0.3728}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","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/react-maximum-update-depth-exceeded","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/ontoolcall-type-narrowing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-performance-zod","title":"TypeScript performance issues with Zod and AI SDK 5","summary":"Troubleshooting TypeScript server crashes and slow performance when using Zod with AI SDK 5","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","distance":0.3409},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","distance":0.3435},{"site":"ai-sdk","path":"/docs/troubleshooting/typescript-cannot-find-namespace-jsx","distance":0.3603},{"site":"ai-sdk","path":"/docs/troubleshooting","distance":0.366},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/zod-schema","distance":0.376}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/no-object-generated-content-filter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","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/ontoolcall-type-narrowing","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/unclosed-streams","title":"Unclosed Streams","summary":"Troubleshooting errors related to unclosed streams.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/create-streamable-ui"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","distance":0.2299},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","distance":0.2521},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.271},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","distance":0.289},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","distance":0.2925}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/streamable-ui-errors","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-abort-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/multiple-streamables","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/unsupported-model-version","title":"Unsupported model version error","summary":"Troubleshooting the AI_UnsupportedModelVersionError when migrating to AI SDK 5","outbound":[{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-5-0"}],"inbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors"}],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","distance":0.2259},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","distance":0.2831},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2932},{"site":"ai-sdk","path":"/docs/migration-guides","distance":0.2981},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","distance":0.3054}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/model-is-not-assignable-to-type","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-no-such-provider-error","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/migration-guides","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","title":"useChat \"An error occurred\"","summary":"Troubleshooting errors related to the \"An error occurred\" error in useChat.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.1942},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","distance":0.2229},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.2349},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","distance":0.2835},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","distance":0.2842}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","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":"Troubleshooting errors related to custom request configuration in useChat hook","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","distance":0.1501},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","distance":0.2233},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2892},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2932},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.3186}],"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":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","title":"useChat Failed to Parse Stream","summary":"Troubleshooting errors related to the Use Chat Failed to Parse Stream error.","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.1547},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","distance":0.1874},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.1942},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.2374},{"site":"ai-sdk","path":"/docs/troubleshooting/stream-text-not-working","distance":0.2394}],"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-tools-no-response","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/stream-text-not-working","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-stale-body-data","title":"Stale body values with useChat","summary":"Troubleshooting stale values when passing information via the body parameter of useChat","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","distance":0.1501},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","distance":0.2232},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2926},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","distance":0.2941},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.2948}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-custom-request-options","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/send-custom-body-from-use-chat","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":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"}]},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-tools-no-response","title":"useChat No Response","summary":"Troubleshooting errors related to the Use Chat Failed to Parse Stream error.","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":[{"site":"ai-sdk","path":"/docs/troubleshooting"}],"neighbors":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","distance":0.1874},{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-an-error-occurred","distance":0.2229},{"site":"ai-sdk","path":"/docs/troubleshooting/streaming-status-delay","distance":0.2828},{"site":"ai-sdk","path":"/docs/troubleshooting/repeated-assistant-messages","distance":0.2841},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","distance":0.2865}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/use-chat-failed-to-parse-stream","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/repeated-assistant-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/strange-stream-output","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/adapters","title":"Adapters","summary":"Learn how to use AI SDK Adapters.","outbound":[{"site":"ai-sdk","path":"/providers/adapters/langchain"},{"site":"ai-sdk","path":"/providers/adapters/llamaindex"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.2051},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2583},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","distance":0.2589},{"site":"ai-sdk","path":"/providers/adapters/llamaindex","distance":0.2614},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.2617}],"related":[{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs","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/adapters","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/adapters/langchain","title":"LangChain","summary":"Learn how to use LangChain with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/providers/adapters"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[{"site":"ai-sdk","path":"/providers/adapters"}],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","distance":0.2408},{"site":"chat-sdk","path":"/docs/streaming","distance":0.2419},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2597},{"site":"chat-sdk","path":"/docs/ai","distance":0.2608},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/transport","distance":0.261}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-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-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-agent-ui-stream","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/custom-stream-format","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/adapters/llamaindex","title":"LlamaIndex","summary":"Learn how to use LlamaIndex with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/completion"}],"inbound":[{"site":"ai-sdk","path":"/providers/adapters"}],"requires":[{"site":"ai-sdk","path":"/providers/adapters"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2014},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.2557},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.2567},{"site":"ai-sdk","path":"/docs/introduction","distance":0.257},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","distance":0.2581}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","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":"/docs/introduction","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":"Learn how to use AI SDK harness adapters.","outbound":[{"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/cursor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot"},{"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":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.0704},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.094},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1489},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1556},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1564}],"related":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","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/acp","title":"Agent Client Protocol","summary":"Learn how to use Agent Client Protocol implementations through the AI SDK harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cursor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.2615},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.2725},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.2753},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.297},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","distance":0.3018}],"related":[{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sandboxed-coding-agent-with-harnessagent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/harbor","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/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","title":"Claude Code","summary":"Learn how to use the Claude Code harness adapter.","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"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1164},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.1389},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1556},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1575},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.1598}],"related":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","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/github-copilot","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","title":"Cline","summary":"Learn how to use the Cline harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1389},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1628},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1695},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1767},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1785}],"related":[{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"inbound"},{"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/github-copilot","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/codex","title":"Codex","summary":"Learn how to use the Codex harness adapter.","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"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1169},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1598},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1658},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1677},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1754}],"related":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","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":"/providers/ai-sdk-harnesses/github-copilot","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/cursor","title":"Cursor","summary":"Learn how to use the Cursor harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1991},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","distance":0.2049},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.2161},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.2216},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","distance":0.2231}],"related":[{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","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-harnesses/pi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","title":"Deep Agents","summary":"Learn how to use the Deep Agents harness adapter.","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":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1483},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1516},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1564},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1575},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1631}],"related":[{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx","title":"fx","summary":"Learn how to use the fx harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1733},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1791},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.1898},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.1932},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.195}],"related":[{"site":"vercel-changelog","path":"/changelog/fx-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","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/github-copilot","title":"GitHub Copilot","summary":"Learn how to use the GitHub Copilot harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.1377},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","distance":0.1392},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1399},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1624},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1631}],"related":[{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","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/codex","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","title":"Grok Build","summary":"Learn how to use the Grok Build harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1392},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1801},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1827},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","distance":0.184},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1885}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","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":"/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/opencode","title":"OpenCode","summary":"Learn how to use the OpenCode harness adapter.","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"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1164},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.1169},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1399},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1483},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1489}],"related":[{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"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/github-copilot","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/pi","title":"Pi","summary":"Learn how to use the Pi harness adapter.","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.1377},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","distance":0.1516},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.1603},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1634},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.1753}],"related":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","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":"/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-providers","title":"AI SDK Providers","summary":"Learn how to use AI SDK providers.","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"},{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot"},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf"},{"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":"vercel-web","path":"/blog/series-f"},{"site":"workflow","path":"/docs/ai"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.0622},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.1968},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2072},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2285},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2311}],"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":"vercel-web","path":"/blog/series-f","via":"inbound"},{"site":"workflow","path":"/docs/ai","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/chat-with-pdf","via":"inbound"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","title":"AI Gateway","summary":"Learn how to use the AI Gateway provider with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"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":"/docs/reference/ai-sdk-errors/ai-stream-provider-error"},{"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/batch"},{"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":"ai-sdk","path":"/providers/ai-sdk-providers/google"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity"},{"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/authentication-and-byok/oidc"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering"},{"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/web-search"},{"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/rest-api"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.2379},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2482},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2599},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2766},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.2836}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/oidc","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-filtering","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/slack-bot-vercel-blob","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/guides/rag-chatbot","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"inbound"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","title":"Alibaba","summary":"Learn how to use Alibaba Cloud Model Studio (Qwen) models with the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2219},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.2282},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.2294},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.253},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.265}],"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/text-to-video","via":"neighbor"},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","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":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","title":"Amazon Bedrock","summary":"Learn how to use the Amazon Bedrock provider.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","distance":0.2555},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","distance":0.2797},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2828},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","distance":0.3},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.3049}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/amazon-bedrock","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/automatic-caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-generation","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/service-tiers","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/mistral","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic","title":"Anthropic","summary":"Learn how to use the Anthropic provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"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/guides/sonnet-3-7"},{"site":"ai-sdk","path":"/cookbook/next/generate-object-with-file-prompt"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"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-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","distance":0.2651},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.2797},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.2905},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2975},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-6-0","distance":0.2993}],"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-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/anthropic","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"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","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":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","title":"Claude Platform on AWS","summary":"Learn how to use the Claude Platform on AWS provider.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2007},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","distance":0.2526},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","distance":0.2533},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api","distance":0.2555},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2681}],"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":"ai-sdk","path":"/providers/community-providers/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","title":"AssemblyAI","summary":"Learn how to use the AssemblyAI provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.1855},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.213},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2227},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.2305},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.2381}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","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/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","title":"Azure OpenAI","summary":"Learn how to use the Azure OpenAI provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/wrap-image-model"},{"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/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.2247},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.233},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2482},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2607},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2626}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","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/mistral","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/baseten","title":"Baseten","summary":"Learn how to use Baseten models with the AI SDK.","outbound":[],"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2419},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.264},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2642},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2697},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2711}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","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":"Learn how to use Black Forest Labs models with the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2632},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","distance":0.2958},{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation","distance":0.2963},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.3041},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.3095}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"inbound"},{"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":"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-web","path":"/blog/video-generation-with-ai-gateway","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/amazon-bedrock","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","title":"ByteDance","summary":"Learn how to use ByteDance Seedance video and Seedream image models with the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","distance":0.1886},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","distance":0.2219},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2243},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","distance":0.2539},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","distance":0.2589}],"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-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2-5-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cartesia","title":"Cartesia","summary":"Learn how to use the Cartesia provider for the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2065},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2358},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2492},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2583},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.268}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","title":"Cerebras","summary":"Learn how to use Cerebras's models with the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2093},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2289},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2341},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","distance":0.2541},{"site":"ai-sdk","path":"/providers/community-providers/cencori","distance":0.257}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","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":"/providers/community-providers/crusoe","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/cencori","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","title":"Cohere","summary":"Learn how to use the Cohere provider for the AI SDK.","outbound":[{"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/nextjs-langchain-vercel-ai"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.1737},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.1953},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.1985},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.2093},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2171}],"related":[{"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/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","title":"Deepgram","summary":"Learn how to use the Deepgram provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.1913},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.1995},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2026},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2087},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.213}],"related":[{"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/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","title":"DeepInfra","summary":"Learn how to use DeepInfra's models with the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.1794},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.1829},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.1834},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.1946},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2015}],"related":[{"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/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","title":"DeepSeek","summary":"Learn how to use DeepSeek's models with the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/r1","distance":0.1811},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.1829},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.1914},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","distance":0.1962},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2158}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/guides/r1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/deepseek-v3-2","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","title":"ElevenLabs","summary":"Learn how to use the ElevenLabs provider for the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.1607},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.1995},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.2001},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.2199},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2221}],"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":"/providers/ai-sdk-providers/revai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","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":"Learn how to use Fal AI models with the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.225},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.231},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2451},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2461},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2467}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/runpod","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/deepinfra","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","title":"Fireworks","summary":"Learn how to use Fireworks models with the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2117},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","distance":0.2133},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2261},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.2288},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2407}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","title":"Fish Audio","summary":"Learn how to use the Fish Audio provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"vercel-changelog","path":"/changelog/fish-audio-models-now-available-on-ai-gateway-for-free"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2001},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2054},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2167},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2381},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","distance":0.2479}],"related":[{"site":"vercel-changelog","path":"/changelog/fish-audio-models-now-available-on-ai-gateway-for-free","via":"inbound"},{"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":"/docs/ai-sdk-core/speech","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia","title":"Gladia","summary":"Learn how to use the Gladia provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2327},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.2445},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2611},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2646},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2767}],"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/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gmicloud","title":"GMI Cloud","summary":"Learn how to use GMI Cloud's models with the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2536},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.2569},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.2791},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.2796},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.289}],"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/ai-sdk-providers/zai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","title":"Google","summary":"Learn how to use Google models through AI Gateway or the direct Google provider.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"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/json-schema"},{"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/ai-sdk-providers/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-options"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/gemini"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"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"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","distance":0.241},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","distance":0.2555},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.2572},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.2963},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","distance":0.2994}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","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/mistral","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","title":"Google Vertex AI","summary":"Learn how to use the Google Vertex AI provider.","outbound":[{"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"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google"}],"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/tools-and-tool-calling"},{"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/oidc/gcp"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","distance":0.2366},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google","distance":0.241},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.2733},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.32},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.3308}],"related":[{"site":"vercel-docs","path":"/docs/oidc/gcp","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","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/provider-options","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","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":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/amazon-bedrock","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","title":"Groq","summary":"Learn how to use Groq.","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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2396},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2406},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","distance":0.253},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2545},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2546}],"related":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/heygen","title":"HeyGen","summary":"Learn how to use the HeyGen video generation provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2026},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/topaz","distance":0.2649},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","distance":0.2713},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2755},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.2815}],"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/topaz","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","title":"Hugging Face","summary":"Learn how to use Hugging Face Provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.1794},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.1849},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.1914},{"site":"ai-sdk","path":"/providers/ai-sdk-providers","distance":0.1968},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2029}],"related":[{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"inbound"},{"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/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/hume","title":"Hume","summary":"Learn how to use the Hume provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2336},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.2636},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2899},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.3032},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.3156}],"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/community-providers/aihubmix","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/klingai","title":"Kling AI","summary":"Learn how to use the Kling AI provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.1613},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","distance":0.1745},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.23},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","distance":0.2459},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.2549}],"related":[{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","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-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","title":"Luma","summary":"Learn how to use Luma AI models with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/image-generation"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/firemoon","distance":0.2383},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2506},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2594},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.266},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2678}],"related":[{"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/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","title":"MiniMax","summary":"Learn how to use MiniMax models with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-video"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/minimax","distance":0.1049},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.219},{"site":"ai-sdk","path":"/providers/observability/maxim","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","distance":0.2634},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","distance":0.266}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/minimax","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/maxim","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","title":"Mistral AI","summary":"Learn how to use Mistral.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.2745},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2811},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2879},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2883},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.294}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-3-4","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","title":"Moonshot AI","summary":"Learn how to use Moonshot AI models with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot"}],"inbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2162},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.226},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2288},{"site":"ai-sdk","path":"/providers/ai-sdk-providers","distance":0.2482},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2549}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","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":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","title":"Open Responses","summary":"Learn how to use the Open Responses provider for the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2083},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.2084},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.2225},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2229},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2403}],"related":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","title":"OpenAI","summary":"Learn how to use the OpenAI provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"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":"/docs/reference/ai-sdk-ui/use-realtime"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/gpt-5"},{"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/batch"},{"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-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","distance":0.1948},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","distance":0.2231},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","distance":0.226},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","distance":0.244},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/reasoning","distance":0.2478}],"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-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/openai","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reasoning","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/ai-sdk-providers/amazon-bedrock","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","title":"Perplexity","summary":"Learn how to use Perplexity's Agent API with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway"}],"inbound":[{"site":"ai-sdk","path":"/cookbook/node/web-search-agent"},{"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"},{"site":"vercel-web","path":"/blog/v0-composite-model-family"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.232},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.24},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2423},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2491},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2515}],"related":[{"site":"vercel-web","path":"/blog/v0-composite-model-family","via":"inbound"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"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/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","title":"Prodia","summary":"Learn how to use Prodia models with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.2296},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2383},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2433},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.2678},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","distance":0.2782}],"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/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/quiverai","title":"QuiverAI","summary":"Learn how to use QuiverAI models with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.255},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2701},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2754},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2817},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2858}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","title":"Replicate","summary":"Learn how to use Replicate models with the AI SDK.","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"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.1983},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2256},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2296},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.2594},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2597}],"related":[{"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/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","title":"Rev.ai","summary":"Learn how to use the Rev.ai provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2025},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.2199},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/assemblyai","distance":0.2305},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.239},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia","distance":0.2445}],"related":[{"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/assemblyai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/gladia","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","title":"Together.ai","summary":"Learn how to use Together.ai's models with the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.1737},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.1834},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2087},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2099},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2104}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/topaz","title":"Topaz Labs","summary":"Learn how to use the Topaz Labs provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","distance":0.2171},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/heygen","distance":0.2649},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai","distance":0.2666},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2667},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.2707}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/heygen","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","title":"TypeSafe","summary":"Use TypeSafe System One models for typed decisions with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","distance":0.1696},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","distance":0.1733},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","distance":0.2451},{"site":"eve","path":"/docs/guides/decide","distance":0.2636},{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2822}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","via":"neighbor"},{"site":"eve","path":"/docs/guides/decide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","via":"neighbor"},{"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":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-errors/ai-decision-unsupported-question-type-error","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","title":"Voyage AI","summary":"Learn how to use the Voyage AI provider for embedding and reranking with the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.133},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.1953},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","distance":0.2423},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2541},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2574}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/voyage-rerank-3-and-rerank-3-lite-are-now-available-on-ai-gateway","via":"neighbor"},{"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":"/docs/ai-sdk-core/embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/xai","title":"xAI Grok","summary":"Learn how to use xAI Grok and Imagine.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch"},{"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/batch"},{"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":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers"},{"site":"vercel-web","path":"/blog/ai-sdk-6"}],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.2247},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/groq","distance":0.253},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepseek","distance":0.2614},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2623},{"site":"ai-sdk","path":"/docs/ai-sdk-core/batch","distance":0.2729}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","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":"ai-sdk","path":"/docs/reference/ai-sdk-core/stream-text","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","title":"Z.AI","summary":"Learn how to use Z.AI's GLM models with the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/zhipu","distance":0.1922},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2121},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2179},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2303},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2319}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/zhipu","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","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/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers","title":"Community Providers","summary":"Learn how to use Language Model Specification.","outbound":[{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"}],"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/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2267},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2389},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2493},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","distance":0.2522},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2565}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"inbound"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/a2a","title":"A2A","summary":"A2A Protocol Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.2384},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2681},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2719},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2767},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2781}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/acp","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/aimlapi","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":"ACP Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","distance":0.1967},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2282},{"site":"ai-sdk","path":"/providers/community-providers/a2a","distance":0.2384},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2479},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2526}],"related":[{"site":"eve","path":"/docs/protocols/acp","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/a2a","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","title":"Aihubmix","summary":"Learn how to use Aihubmix with the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2322},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2332},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2391},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2403},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2497}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","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":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","title":"AI/ML API","summary":"Learn how to use the AI/ML API provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.1721},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1781},{"site":"ai-sdk","path":"/docs/introduction","distance":0.1977},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2001},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2009}],"related":[{"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":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/anthropic-vertex-ai","title":"Anthropic Vertex","summary":"Learn how to use the Anthropic Vertex provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2186},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","distance":0.2366},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","distance":0.2533},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2748},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","distance":0.2758}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/gemini-cli","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/apertis","title":"Apertis","summary":"Apertis AI Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.1721},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.193},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2148},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.2161},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2173}],"related":[{"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/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/automatic1111","title":"Automatic1111","summary":"Automatic1111 Provider for the AI SDK","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2795},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.281},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2949},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2952},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2983}],"related":[{"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/apertis","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/community-providers/azure-ai","title":"Azure AI","summary":"Learn how to use the @quail-ai/azure-ai-provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2216},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.231},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2344},{"site":"ai-sdk","path":"/providers/community-providers/qvac","distance":0.2401},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.2563}],"related":[{"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/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/qvac","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","title":"Browser AI","summary":"Learn how to use browser AI model providers for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2135},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2149},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2175},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2305},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.231}],"related":[{"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":"/docs/introduction","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/community-providers/cencori","title":"Cencori","summary":"Cencori Provider for the AI SDK","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2539},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.257},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.26},{"site":"ai-sdk","path":"/providers/community-providers/helicone","distance":0.2681},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2849}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/helicone","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","title":"Claude Code","summary":"Learn how to use the Claude Code provider to access Claude models through the Claude Agent SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.1968},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","distance":0.2007},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2377},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","distance":0.2385},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.2428}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/anthropic-aws","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/claude-4","via":"neighbor"},{"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/community-providers/cloudflare-ai-gateway","title":"Cloudflare AI Gateway","summary":"Learn how to use the Cloudflare AI Gateway provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai","distance":0.1687},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1812},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.2112},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2231},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","distance":0.2267}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/faq","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/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-workers-ai","title":"Cloudflare Workers AI","summary":"Learn how to use the Cloudflare Workers AI provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.1687},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2225},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2288},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2319},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.234}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","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/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","title":"Codex CLI (App Server)","summary":"Learn how to use the Codex CLI App Server provider for mid-execution message injection and persistent threads.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.103},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2097},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2657},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","distance":0.2715},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","distance":0.2779}],"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/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","title":"Codex CLI","summary":"Learn how to use the Codex CLI provider to access OpenAI GPT-5 models through the Codex CLI.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","distance":0.103},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.1882},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","distance":0.2327},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.2428},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.2565}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/crosshatch","title":"Crosshatch","summary":"Learn how to use the Crosshatch provider for the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2557},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2577},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2619},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2697},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2745}],"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/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/crusoe","title":"Crusoe","summary":"Learn how to use the Crusoe provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2501},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cerebras","distance":0.2541},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.2565},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2566},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2608}],"related":[{"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/zai","via":"neighbor"},{"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/custom-providers","title":"Writing a Custom Provider","summary":"Learn how to write a custom provider for the AI SDK","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"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers"},{"site":"ai-sdk","path":"/providers/community-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers","distance":0.2623},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2866},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2891},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","distance":0.3008},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","distance":0.3111}],"related":[{"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/foundations/prompts","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/openai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/mistral","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/dify","title":"Dify","summary":"Learn how to use the Dify provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2718},{"site":"ai-sdk","path":"/providers/community-providers/flowise","distance":0.2959},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3001},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.3075},{"site":"ai-sdk","path":"/providers/community-providers/interfaze","distance":0.3127}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/flowise","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/interfaze","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/firemoon","title":"Firemoon","summary":"Firemoon provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fireworks","distance":0.2133},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/luma","distance":0.2383},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.277},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2782},{"site":"ai-sdk","path":"/providers/community-providers/runpod","distance":0.2811}],"related":[{"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/aimlapi","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/flowise","title":"Flowise","summary":"Learn how to use the Flowise provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2816},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2822},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2834},{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.2939},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2946}],"related":[{"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/inflection-ai","via":"neighbor"},{"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","title":"FriendliAI","summary":"Learn how to use the FriendliAI Provider for the AI SDK.","outbound":[{"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":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2029},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2046},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2099},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.2121},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2135}],"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/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","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":"Learn how to use the Gemini CLI provider to access Google's Gemini models.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.1852},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2634},{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.2695},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2697},{"site":"ai-sdk","path":"/cookbook/guides/google-gemini-image-generation","distance":0.27}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/reasoning/google","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/google-vertex","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/helicone","title":"Helicone","summary":"Helicone Provider for the AI SDK","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/helicone","distance":0.0706},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2434},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2596},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2635},{"site":"ai-sdk","path":"/providers/community-providers/telnyx","distance":0.264}],"related":[{"site":"ai-sdk","path":"/providers/observability/helicone","via":"neighbor"},{"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/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/telnyx","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","title":"Hindsight","summary":"Learn how to use Hindsight persistent memory with the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.2029},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.2637},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2753},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","distance":0.2792},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core","distance":0.2793}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","via":"neighbor"},{"site":"eve","path":"/docs/memory/custom-provider","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"eve","path":"/docs/memory","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","title":"Inflection AI","summary":"Learn how to use the unofficial Inflection AI provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2001},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2135},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2236},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2305},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2323}],"related":[{"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/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/interfaze","title":"Interfaze","summary":"Interfaze Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.2407},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2516},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2565},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2593},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2634}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","via":"neighbor"},{"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/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/jina-ai","title":"Jina AI","summary":"Learn how to use the Jina AI provider.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2487},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2502},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2612},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","distance":0.2768},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2816}],"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/community-providers/mixedbread","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/langdb","title":"LangDB","summary":"Learn how to use LangDB with the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/guides/r1"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers","distance":0.2568},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.2582},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2705},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.271},{"site":"ai-sdk","path":"/providers/observability/langsmith","distance":0.2734}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langchain","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/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langsmith","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/letta","title":"Letta","summary":"Learn how to use the Letta provider with the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2468},{"site":"ai-sdk","path":"/docs/introduction","distance":0.263},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2656},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2813},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.2907}],"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/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","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":"Learn how to use the llama.cpp provider.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.1537},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2435},{"site":"ai-sdk","path":"/providers/community-providers/ollama","distance":0.2518},{"site":"ai-sdk","path":"/providers/adapters/llamaindex","distance":0.2581},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2625}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/llamagate","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/adapters/llamaindex","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","title":"LlamaGate","summary":"LlamaGate Provider for the AI SDK","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","distance":0.1537},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2201},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2442},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2454},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2474}],"related":[{"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":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/mcp-sampling","title":"MCP Sampling AI Provider","summary":"Learn how to use the MCP Sampling AI Provider.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.1967},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2531},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2544},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","distance":0.2755},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","distance":0.2818}],"related":[{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/acp","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":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/mem0","title":"Mem0","summary":"Learn how to use the Mem0 AI SDK provider for the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.1825},{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.2168},{"site":"vercel-changelog","path":"/changelog/mem0-joins-the-vercel-marketplace","distance":0.2724},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2788},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2821}],"related":[{"site":"vercel-changelog","path":"/changelog/mem0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"eve","path":"/docs/memory/file","via":"neighbor"},{"site":"eve","path":"/docs/memory","via":"neighbor"},{"site":"eve","path":"/docs/memory/custom-provider","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","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/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/minimax","title":"MiniMax","summary":"Learn how to use MiniMax provider with the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.1049},{"site":"ai-sdk","path":"/providers/observability/maxim","distance":0.1822},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.2651},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2729},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.278}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","title":"Mixedbread","summary":"Learn how to use the Mixedbread provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2299},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2479},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2497},{"site":"ai-sdk","path":"/providers/community-providers/jina-ai","distance":0.2612},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2621}],"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/community-providers/aihubmix","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/jina-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","title":"Neon AI Gateway","summary":"Learn how to use the Neon AI Gateway provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/cloudflare-ai-gateway","distance":0.2267},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2378},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.253},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","distance":0.2561},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.2678}],"related":[{"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/llamagate","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/nia","title":"Nia","summary":"Learn how to use Nia with the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","distance":0.3044},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.3172},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3214},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.3289},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.3292}],"related":[{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/ollama","title":"Ollama","summary":"Learn how to use the Ollama provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/ollm","distance":0.1528},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.25},{"site":"ai-sdk","path":"/providers/community-providers/llama-cpp","distance":0.2518},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2558},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2741}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/ollm","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":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/ollm","title":"OLLM","summary":"OLLM Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/ollama","distance":0.1528},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.2468},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2619},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","distance":0.2628},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2672}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/ollama","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/llamagate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","title":"OpenCode","summary":"Learn how to use the OpenCode provider to access multiple AI models through a unified interface.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/codex-cli","distance":0.1882},{"site":"ai-sdk","path":"/providers/community-providers/claude-code","distance":0.1968},{"site":"ai-sdk","path":"/providers/community-providers/codex-app-server","distance":0.2097},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2174},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/open-responses","distance":0.2229}],"related":[{"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":"/providers/ai-sdk-providers/open-responses","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","title":"OpenRouter","summary":"OpenRouter Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2161},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2241},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2411},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.2447},{"site":"ai-sdk","path":"/providers/community-providers/ollm","distance":0.2468}],"related":[{"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":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/ollm","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/portkey","title":"Portkey","summary":"Learn how to use the Portkey provider for the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2605},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2671},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2703},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2721},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.2881}],"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/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/qvac","title":"QVAC","summary":"Learn how to use the QVAC provider.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","distance":0.2401},{"site":"ai-sdk","path":"/providers/community-providers/qwen","distance":0.2723},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2877},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2896},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.3091}],"related":[{"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":"/providers/community-providers/aimlapi","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/community-providers/qwen","title":"Qwen","summary":"Learn how to use the Qwen provider.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2629},{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","distance":0.2693},{"site":"ai-sdk","path":"/providers/community-providers/qvac","distance":0.2723},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2851},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.287}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/qvac","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/react-native-apple","title":"React Native Apple","summary":"Learn how to use the Apple provider for on-device AI.","outbound":[{"site":"ai-sdk","path":"/docs/getting-started/expo"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2639},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2717},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2755},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2771},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2804}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/requesty","title":"Requesty","summary":"Requesty Provider for the AI SDK","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2438},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2452},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.2514},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.2619},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.2639}],"related":[{"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/ai-sdk-providers/zai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/runpod","title":"Runpod","summary":"Runpod Provider for the AI SDK","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","distance":0.1983},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2226},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","distance":0.231},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","distance":0.2317},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","distance":0.2383}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/replicate","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fal","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/togetherai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/prodia","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/sambanova","title":"SambaNova","summary":"Learn how to use the SambaNova provider for the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","distance":0.272},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2729},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2784},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2812},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.282}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/huggingface","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/openai-compatible-providers/clarifai","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":"Learn how to use the SAP AI Core provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.2365},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2394},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2456},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2457},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","distance":0.2475}],"related":[{"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/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/browser-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/sarvam","title":"Sarvam","summary":"Learn how to use the Sarvam AI provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/sambanova","distance":0.3014},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","distance":0.3175},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","distance":0.3273},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.3319},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.3345}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/sambanova","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech","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","title":"Soniox","summary":"Learn how to use the Soniox provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/elevenlabs","distance":0.265},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","distance":0.2688},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2932},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/revai","distance":0.2972},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepgram","distance":0.2975}],"related":[{"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":"/docs/getting-started/choosing-a-provider","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/spark","title":"Spark","summary":"Learn how to use the Spark provider for the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2374},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2577},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.265},{"site":"ai-sdk","path":"/providers/community-providers","distance":0.2657},{"site":"ai-sdk","path":"/providers/community-providers/sap-ai","distance":0.2779}],"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":"Learn how to use the Supermemory AI SDK provider for the Vercel AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/agents/memory"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/mem0","distance":0.1825},{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.1845},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","distance":0.2637},{"site":"eve","path":"/docs/memory","distance":0.2726},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2882}],"related":[{"site":"eve","path":"/docs/memory","via":"neighbor"},{"site":"eve","path":"/docs/memory/custom-provider","via":"neighbor"},{"site":"eve","path":"/docs/memory/file","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/hindsight","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/telnyx","title":"Telnyx","summary":"Telnyx provider for AI SDK 7","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.25},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2604},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2635},{"site":"ai-sdk","path":"/providers/community-providers/helicone","distance":0.264},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2647}],"related":[{"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":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/helicone","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","title":"vectorstores","summary":"Learn how to use vector databases with the AI SDK.","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","distance":0.2601},{"site":"vercel-kb","path":"/kb/guide/vector-databases","distance":0.2614},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2832},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","distance":0.3126},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.3224}],"related":[{"site":"vercel-kb","path":"/kb/guide/understanding-vector-databases-for-ai-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vector-databases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/voyage-ai","title":"Voyage AI","summary":"Learn how to use the Voyage AI provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.133},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.189},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.2448},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2714},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","distance":0.2741}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","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/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mixedbread","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/zeroentropy","title":"ZeroEntropy","summary":"Learn how to use the ZeroEntropy community provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","distance":0.2725},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2891},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","distance":0.292},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","distance":0.2933},{"site":"ai-sdk","path":"/providers/community-providers/zhipu","distance":0.2949}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/deepinfra","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/perplexity","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/zhipu","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/community-providers/zhipu","title":"Zhipu AI (Z.AI)","summary":"Learn how to use the Zhipu (Z.AI) provider.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"}],"requires":[{"site":"ai-sdk","path":"/providers/community-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","distance":0.1922},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2646},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2659},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2666},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2708}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/zai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","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":"/docs/getting-started/choosing-a-provider","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability","title":"Observability Integrations","summary":"AI SDK Integration for monitoring and tracing LLM applications","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/datadog"},{"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.2244},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2245},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2349},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.247},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.2606}],"related":[{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","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":"Trace, monitor, and evaluate LLM applications with Arize AX","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/axiom","distance":0.1713},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2055},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2199},{"site":"ai-sdk","path":"/providers/observability/respan","distance":0.2266},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2281}],"related":[{"site":"ai-sdk","path":"/providers/observability/axiom","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","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/axiom","title":"Axiom","summary":"Measure, observe, and improve your AI SDK application with Axiom","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.1713},{"site":"ai-sdk","path":"/providers/observability","distance":0.2244},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2279},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2588},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2667}],"related":[{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/o1","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/braintrust","title":"Braintrust","summary":"Monitoring and tracing LLM applications with Braintrust","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2151},{"site":"ai-sdk","path":"/providers/observability","distance":0.2245},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2281},{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.2347},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2395}],"related":[{"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/traceloop","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/confident-ai","title":"Confident AI","summary":"Trace and monitor your AI SDK applications with Confident AI","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.1919},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.1922},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.1991},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2055},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.212}],"related":[{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","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/datadog","title":"Datadog Agent Observability","summary":"Trace and monitor AI SDK applications with Datadog Agent Observability","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.1991},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2191},{"site":"ai-sdk","path":"/providers/observability","distance":0.2349},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2404},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2414}],"related":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","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/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/helicone","title":"Helicone","summary":"Monitor and optimize your AI SDK applications with minimal configuration using Helicone","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/helicone","distance":0.0706},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.278},{"site":"ai-sdk","path":"/providers/community-providers/aihubmix","distance":0.2894},{"site":"ai-sdk","path":"/providers/observability","distance":0.2914},{"site":"ai-sdk","path":"/providers/community-providers/cencori","distance":0.2928}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/helicone","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","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/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/laminar","title":"Laminar","summary":"Monitor your AI SDK applications with Laminar","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":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.1922},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2067},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.223},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2343},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.2361}],"related":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","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/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/langfuse","title":"Langfuse","summary":"Monitor, evaluate and debug your AI SDK application with Langfuse","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.177},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2067},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","distance":0.2092},{"site":"ai-sdk","path":"/providers/observability/langsmith","distance":0.2127},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2223}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/langfuse","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","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/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/langsmith","title":"LangSmith","summary":"Monitor and evaluate your AI SDK application with LangSmith","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":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.2054},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2127},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2494},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2518},{"site":"ai-sdk","path":"/providers/adapters/langchain","distance":0.2686}],"related":[{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langfuse","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/adapters/langchain","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/langwatch","title":"LangWatch","summary":"Track, monitor, guardrail and evaluate your AI SDK applications with LangWatch.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.177},{"site":"ai-sdk","path":"/providers/observability/langsmith","distance":0.2054},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.238},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2523},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2567}],"related":[{"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/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/latitude","title":"Latitude","summary":"Monitor and debug your AI SDK application with Latitude","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2599},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2605},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.2698},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2762},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2769}],"related":[{"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","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/maxim","title":"Maxim","summary":"Evaluate & Observe LLM applications with Maxim","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/minimax","distance":0.1822},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.2278},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2525},{"site":"ai-sdk","path":"/cookbook/guides/llama-3_1","distance":0.2577},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2677}],"related":[{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","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":"/providers/observability/confident-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/mlflow","title":"MLflow","summary":"Track, visualize, and debug Vercel AI SDK traces with MLflow Tracing","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":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.1919},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2163},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.2223},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.223},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2404}],"related":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","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/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/patronus","title":"Patronus","summary":"Monitor, evaluate and debug your AI SDK application with Patronus","outbound":[],"inbound":[],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2582},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2591},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2609},{"site":"ai-sdk","path":"/providers/observability/posthog","distance":0.261},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2673}],"related":[{"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/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/posthog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/posthog","title":"PostHog","summary":"Monitor and analyze LLM usage with PostHog","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature/posthog","distance":0.2359},{"site":"ai-sdk","path":"/providers/observability/patronus","distance":0.261},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2694},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2712},{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.2738}],"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/datadog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/raindrop","title":"Raindrop","summary":"Monitor AI SDK calls and agent traces with Raindrop","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2544},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2758},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","distance":0.2785},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2894},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2964}],"related":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/respan","title":"Respan","summary":"Trace and monitor your AI SDK application with Respan","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2266},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2771},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2801},{"site":"ai-sdk","path":"/providers/observability/langfuse","distance":0.3007},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.3038}],"related":[{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","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/scorecard","title":"Scorecard","summary":"Monitoring and evaluating LLM applications with Scorecard","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.2827},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.3116},{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.3134},{"site":"ai-sdk","path":"/providers/observability","distance":0.3146},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.3148}],"related":[{"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/signoz","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/sentry","title":"Sentry","summary":"Monitor AI SDK calls and agent traces with Sentry","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2124},{"site":"ai-sdk","path":"/providers/observability/signoz","distance":0.2142},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2361},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2436},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2445}],"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":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/signoz","title":"SigNoz","summary":"Monitor, observe and debug your AI SDK application with SigNoz","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.212},{"site":"ai-sdk","path":"/providers/observability/sentry","distance":0.2142},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.2163},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2191},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2199}],"related":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/sentry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/traceloop","title":"Traceloop","summary":"Monitoring and evaluating LLM applications with Traceloop","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/braintrust","distance":0.2347},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2445},{"site":"ai-sdk","path":"/providers/observability/laminar","distance":0.2455},{"site":"ai-sdk","path":"/providers/observability/mlflow","distance":0.246},{"site":"ai-sdk","path":"/providers/observability/datadog","distance":0.2651}],"related":[{"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/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/mlflow","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/observability/weave","title":"Weave","summary":"Monitor and evaluate LLM applications with Weave.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"}],"inbound":[{"site":"ai-sdk","path":"/providers/observability"}],"requires":[{"site":"ai-sdk","path":"/providers/observability"}],"neighbors":[{"site":"ai-sdk","path":"/providers/observability/traceloop","distance":0.2864},{"site":"ai-sdk","path":"/providers/observability/arize-ax","distance":0.2936},{"site":"ai-sdk","path":"/providers/observability","distance":0.2991},{"site":"ai-sdk","path":"/providers/observability/confident-ai","distance":0.2999},{"site":"ai-sdk","path":"/providers/observability/langwatch","distance":0.3009}],"related":[{"site":"ai-sdk","path":"/providers/observability/traceloop","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/confident-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/langwatch","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/braintrust","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers","title":"OpenAI Compatible Providers","summary":"Use OpenAI compatible providers with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/cheaper-inference"},{"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/modelrush"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai"}],"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":"ai-sdk","path":"/providers/openai-compatible-providers/cheaper-inference"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/modelrush"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/provider-options","distance":0.2363},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","distance":0.2495},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","distance":0.2607},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.2613},{"site":"ai-sdk","path":"/providers/community-providers/custom-providers","distance":0.2623}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions","via":"inbound"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/provider-options","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/azure","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-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/provider-management","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/cheaper-inference","title":"Cheaper Inference","summary":"Use the Cheaper Inference OpenAI compatible API with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2661},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2705},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2782},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2814},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2887}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","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":"/docs/getting-started/choosing-a-provider","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","title":"Clarifai","summary":"Use Clarifai OpenAI compatible API with the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2009},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2046},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2148},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2177},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2233}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","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":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/custom-providers","title":"Writing a Custom Provider","summary":"Create a custom provider package for an OpenAI-compatible provider leveraging the AI SDK OpenAI Compatible package.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.1754},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","distance":0.1789},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/custom-provider","distance":0.1879},{"site":"ai-sdk","path":"/providers/community-providers/opencode-sdk","distance":0.2174},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2232}],"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/friendliai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/heroku","title":"Heroku","summary":"Use a Heroku OpenAI compatible API with the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.235},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2578},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2681},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","distance":0.2715},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","distance":0.2737}],"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/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/providers-and-models","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/inflection-ai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/lmstudio","title":"LM Studio","summary":"Use the LM Studio OpenAI compatible API with the AI SDK.","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":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2214},{"site":"ai-sdk","path":"/docs/ai-sdk-core/embeddings","distance":0.2432},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.244},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2484},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2525}],"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/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/modelrush","title":"ModelRush","summary":"Use the ModelRush OpenAI compatible API with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2624},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.268},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","distance":0.2754},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai","distance":0.2793},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2844}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/openrouter","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","title":"NEAR AI Cloud","summary":"Use the NEAR AI Cloud OpenAI compatible API with the AI SDK.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.224},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2512},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2527},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","distance":0.2561},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","distance":0.2591}],"related":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/neon-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nim","title":"NVIDIA NIM","summary":"Use NVIDIA NIM OpenAI compatible API with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output"}],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers/nearai","distance":0.2591},{"site":"ai-sdk","path":"/providers/community-providers/friendliai","distance":0.2807},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2808},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2842},{"site":"ai-sdk","path":"/docs/introduction","distance":0.2935}],"related":[{"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/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"}]},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/topxai","title":"TopxAI","summary":"Use the TopxAI OpenAI compatible API with the AI SDK.","outbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"inbound":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"requires":[{"site":"ai-sdk","path":"/providers/openai-compatible-providers"}],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","distance":0.2235},{"site":"ai-sdk","path":"/providers/community-providers/apertis","distance":0.2366},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","distance":0.2462},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","distance":0.2467},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","distance":0.2503}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/aimlapi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/apertis","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"ai-sdk","path":"/providers/openai-compatible-providers/clarifai","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-responses","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/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/state-adapters"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/chat-sdk"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown"},{"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/claude-managed-agents-chat-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"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users"}],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/usage","distance":0.1104},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.1282},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.1335},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","distance":0.1482},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.153}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","via":"inbound"},{"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/run-and-track-deploys-from-slack","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","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-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-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.1915},{"site":"chat-sdk","path":"/docs/cards","distance":0.2239},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-modals","distance":0.2892},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2964},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.3049}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-modals","via":"inbound"},{"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":"chat-sdk","path":"/docs/posting-messages","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/slash-commands","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","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/threads-messages-channels"},{"site":"chat-sdk","path":"/docs/usage"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.1927},{"site":"chat-sdk","path":"/docs","distance":0.2007},{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.2008},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","distance":0.2522},{"site":"chat-sdk","path":"/docs/state-adapters","distance":0.2576}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/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/api/chat","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ai","title":"Overview","summary":"AI utilities that ship with Chat SDK, including agent tools, message conversion, and supporting types.","outbound":[{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/ai/types"},{"site":"chat-sdk","path":"/docs/api/message"},{"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/tanstack-ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/api"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","distance":0.1147},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.1203},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.1455},{"site":"chat-sdk","path":"/docs/api","distance":0.1469},{"site":"chat-sdk","path":"/docs/streaming","distance":0.165}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","title":"AI SDK Tools","summary":"Let an AI agent post messages, send DMs, react, edit, and delete inside your workspace, with approval required for writes by default.","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/tanstack-ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/tanstack-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","distance":0.1455},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","distance":0.1459},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.1512},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2163},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","distance":0.2274}],"related":[{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-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/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","title":"TanStack AI","summary":"Feed thread history into TanStack AI's chat() and give it Chat SDK tools, with no runtime dependency on @tanstack/ai.","outbound":[{"site":"chat-sdk","path":"/docs/ai"},{"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/api/message"},{"site":"chat-sdk","path":"/docs/streaming"},{"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/ecosystem/framework-integrations/tanstack-ai"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"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"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/types","distance":0.0507},{"site":"chat-sdk","path":"/docs/ai","distance":0.1147},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.1459},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.1883},{"site":"chat-sdk","path":"/docs/streaming","distance":0.1909}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/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":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"chat-sdk","path":"/docs/api","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/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/ai/tanstack-ai"},{"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/tanstack-ai"},{"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.173},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","distance":0.1872},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","distance":0.1883},{"site":"chat-sdk","path":"/docs/ai/types","distance":0.1964},{"site":"chat-sdk","path":"/docs/api/message","distance":0.2227}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","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/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/save-messages-to-database","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/api/postable-message","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/tanstack-ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"},{"site":"chat-sdk","path":"/docs/api/chat"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai"}],"requires":[{"site":"chat-sdk","path":"/docs/ai"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","distance":0.0507},{"site":"chat-sdk","path":"/docs/ai","distance":0.1203},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.1512},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages","distance":0.1964},{"site":"chat-sdk","path":"/docs/api","distance":0.2191}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","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":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/convert-to-model-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","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/history"},{"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"},{"site":"chat-sdk","path":"/docs/api/transcripts"}],"inbound":[],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/ai","distance":0.1469},{"site":"chat-sdk","path":"/docs","distance":0.2017},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.2112},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2131},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","distance":0.2141}],"related":[{"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","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/ai/types","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","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.1189},{"site":"chat-sdk","path":"/docs/api/modals","distance":0.2484},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2671},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2703},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.2726}],"related":[{"site":"eve","path":"/docs/channels/overview","via":"inbound"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/product-card","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","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/markdown","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.1528},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1674},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2356},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.2449},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2617}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","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/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 class that coordinates adapters, state, and event handlers for a multi-platform chat bot.","outbound":[{"site":"chat-sdk","path":"/docs/api/history"},{"site":"chat-sdk","path":"/docs/concurrency"},{"site":"chat-sdk","path":"/docs/history"}],"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/handling-events","distance":0.1741},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1934},{"site":"chat-sdk","path":"/docs/usage","distance":0.1993},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2131},{"site":"chat-sdk","path":"/docs","distance":0.2202}],"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":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","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/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/history","title":"History","summary":"API reference for bot.history, covering the user, thread, and channel scopes.","outbound":[{"site":"chat-sdk","path":"/docs/history"}],"inbound":[{"site":"chat-sdk","path":"/docs/api"},{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/api/transcripts"},{"site":"chat-sdk","path":"/docs/history"},{"site":"chat-sdk","path":"/docs/threads-messages-channels"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/history","distance":0.0813},{"site":"chat-sdk","path":"/docs/api/transcripts","distance":0.136},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1878},{"site":"chat-sdk","path":"/docs/api","distance":0.261},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.2695}],"related":[{"site":"chat-sdk","path":"/docs/api/transcripts","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","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/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","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.2263},{"site":"chat-sdk","path":"/docs/api/message","distance":0.2582},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","distance":0.2631},{"site":"chat-sdk","path":"/docs/cards","distance":0.2634},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2689}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mdx","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/mdx","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/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/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"},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai"},{"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/ai/to-ai-messages","distance":0.2227},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2371},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.2417},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","distance":0.2448},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.2493}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/message-metadata","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":"ai-sdk","path":"/docs/reference/ai-sdk-core/model-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-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/api/postable-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","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.1376},{"site":"chat-sdk","path":"/docs/api/cards","distance":0.2484},{"site":"chat-sdk","path":"/docs/cards","distance":0.2718},{"site":"chat-sdk","path":"/docs/actions","distance":0.3284},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.3525}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"streamdown","path":"/docs/link-safety","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","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/posting-messages","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.1071},{"site":"chat-sdk","path":"/docs/streaming","distance":0.1294},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.1784},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.2356},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.2378}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","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/cards","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-changelog","path":"/changelog/chat-sdk-adds-dial-support"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages"},{"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.1306},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.1528},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.1784},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.1994},{"site":"chat-sdk","path":"/docs/streaming","distance":0.2264}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","via":"inbound"},{"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/threads-messages-channels","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/streaming","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/api/transcripts","title":"Transcripts (deprecated)","summary":"Configuration, methods, and entry shape for the deprecated cross-platform per-user transcript API.","outbound":[{"site":"chat-sdk","path":"/docs/api/history"},{"site":"chat-sdk","path":"/docs/history"}],"inbound":[{"site":"chat-sdk","path":"/docs/api"}],"requires":[{"site":"chat-sdk","path":"/docs/api"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/history","distance":0.136},{"site":"chat-sdk","path":"/docs/history","distance":0.1698},{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","distance":0.2732},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3029},{"site":"chat-sdk","path":"/docs/concurrency","distance":0.3468}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription","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/concurrency","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/thread","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":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-durable-approvals"}],"requires":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"chat-sdk","path":"/docs/cards"}],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-durable-approvals","distance":0.1375},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.1871},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2701},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.2779},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","distance":0.3019}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-durable-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-modals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","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.1189},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.1624},{"site":"chat-sdk","path":"/docs","distance":0.209},{"site":"chat-sdk","path":"/docs/actions","distance":0.2239},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2261}],"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":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/cards","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, with the burst, queue, debounce, drop, and concurrent strategies.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/error-handling"},{"site":"chat-sdk","path":"/docs/state-adapters"},{"site":"chat-sdk","path":"/docs/usage"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-concurrent-message-handling"}],"requires":[{"site":"chat-sdk","path":"/docs/handling-events"}],"neighbors":[{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1975},{"site":"chat-sdk","path":"/docs/usage","distance":0.2013},{"site":"chat-sdk","path":"/docs/error-handling","distance":0.2135},{"site":"chat-sdk","path":"/docs/history","distance":0.2309},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2643}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-concurrent-message-handling","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/handling-events","via":"requires"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/error-handling","via":"neighbor"},{"site":"chat-sdk","path":"/docs/history","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"},{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-postgresql-state-adapter"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-zernio-support"},{"site":"vercel-changelog","path":"/changelog/notion-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"},{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings"}],"requires":[{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2178},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2424},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.2538},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2549},{"site":"chat-sdk","path":"/docs/cards","distance":0.2552}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-postgresql-state-adapter","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"inbound"},{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings","via":"inbound"},{"site":"v0","path":"/docs/api/v1/guides/displaying-chat-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","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/contributing/documenting","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.156},{"site":"chat-sdk","path":"/docs/contributing/testing","distance":0.1874},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.1984},{"site":"chat-sdk","path":"/docs","distance":0.2238},{"site":"chat-sdk","path":"/docs/contributing/vendor-official","distance":0.2274}],"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/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/building","via":"requires"},{"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/vendor-official","distance":0.1488},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.156},{"site":"chat-sdk","path":"/docs/adapters","distance":0.2008},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2062},{"site":"chat-sdk","path":"/docs","distance":0.2254}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters","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/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.1703},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.1874},{"site":"chat-sdk","path":"/docs/usage","distance":0.2345},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2396},{"site":"chat-sdk","path":"/docs","distance":0.2503}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/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/usage","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/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"},{"site":"chat-sdk","path":"/docs/vercel-connect"}],"inbound":[{"site":"chat-sdk","path":"/docs"},{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/publishing"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/state-adapters"}],"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.1488},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.2274},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2369},{"site":"chat-sdk","path":"/docs/adapters","distance":0.2522},{"site":"chat-sdk","path":"/docs","distance":0.2968}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/state-adapters","via":"inbound"}]},{"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-changelog","path":"/changelog/scaffold-your-chat-apps-with-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":"chat-sdk","path":"/docs/vercel-connect","distance":0.1528},{"site":"chat-sdk","path":"/docs/usage","distance":0.1783},{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk","distance":0.1798},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.1839},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","distance":0.1858}],"related":[{"site":"vercel-changelog","path":"/changelog/scaffold-your-chat-apps-with-create-chat-sdk","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/slack-bot-vercel-blob","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","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.2899},{"site":"chat-sdk","path":"/docs/ephemeral-messages","distance":0.314},{"site":"chat-sdk","path":"/docs/usage","distance":0.316},{"site":"chat-sdk","path":"/docs/slash-commands","distance":0.372},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3748}],"related":[{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/direct-chat-transport","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ephemeral-messages","via":"neighbor"},{"site":"chat-sdk","path":"/docs/slash-commands","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 convert to each platform's format.","outbound":[],"inbound":[{"site":"chat-sdk","path":"/docs/handling-events"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-reactions-and-ephemeral-messages-on-teams"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs/cards","distance":0.3229},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.3367},{"site":"chat-sdk","path":"/docs/api/markdown","distance":0.345},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3577},{"site":"chat-sdk","path":"/docs","distance":0.3589}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-reactions-and-ephemeral-messages-on-teams","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/emoji-reactions-now-available-in-preview-deployment-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/og-image-generation/examples","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","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/api/message","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"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-reactions-and-ephemeral-messages-on-teams"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.3103},{"site":"chat-sdk","path":"/docs/direct-messages","distance":0.314},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3303},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.334},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.3422}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-reactions-and-ephemeral-messages-on-teams","via":"inbound"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","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/api/thread","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/concurrency"},{"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.1604},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1934},{"site":"chat-sdk","path":"/docs","distance":0.2131},{"site":"chat-sdk","path":"/docs/concurrency","distance":0.2135},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2244}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"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/api/chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/testing","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","via":"neighbor"},{"site":"chat-sdk","path":"/docs/history","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.2763},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.3123},{"site":"ai-sdk","path":"/docs/ai-sdk-core/file-uploads","distance":0.3272},{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.3273},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/upload-file","distance":0.3351}],"related":[{"site":"v0","path":"/docs/images-and-videos","via":"neighbor"},{"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":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","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/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":"chat-sdk","path":"/docs/handling-events"},{"site":"chat-sdk","path":"/docs/platform-adapters"},{"site":"chat-sdk","path":"/docs/posting-messages"},{"site":"chat-sdk","path":"/docs/state-adapters"},{"site":"chat-sdk","path":"/docs/threads-messages-channels"},{"site":"chat-sdk","path":"/docs/usage"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-vercel-services"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"chat-sdk","path":"/docs","distance":0.1674},{"site":"chat-sdk","path":"/docs/usage","distance":0.1968},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2367},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2496},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2499}],"related":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-vercel-services","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","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-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","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":[{"site":"chat-sdk","path":"/docs/getting-started"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/chat","distance":0.1741},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2109},{"site":"eve","path":"/docs/channels/slack","distance":0.2128},{"site":"chat-sdk","path":"/docs/usage","distance":0.2715},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.2864}],"related":[{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","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/history","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/history","title":"History","summary":"Store and retrieve message history across user, thread, and channel scopes.","outbound":[{"site":"chat-sdk","path":"/docs/api/history"}],"inbound":[{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/api/history"},{"site":"chat-sdk","path":"/docs/api/transcripts"},{"site":"chat-sdk","path":"/docs/state-adapters"},{"site":"chat-sdk","path":"/docs/threads-messages-channels"},{"site":"chat-sdk","path":"/docs/usage"}],"requires":[{"site":"chat-sdk","path":"/docs/state-adapters"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/history","distance":0.0813},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1368},{"site":"chat-sdk","path":"/docs/api/transcripts","distance":0.1698},{"site":"chat-sdk","path":"/docs/usage","distance":0.2134},{"site":"chat-sdk","path":"/docs/concurrency","distance":0.2309}],"related":[{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/transcripts","via":"neighbor"},{"site":"chat-sdk","path":"/docs/state-adapters","via":"requires"},{"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.1376},{"site":"chat-sdk","path":"/docs/actions","distance":0.1915},{"site":"chat-sdk","path":"/docs/cards","distance":0.2417},{"site":"chat-sdk","path":"/docs/api/chat","distance":0.2741},{"site":"chat-sdk","path":"/docs/slash-commands","distance":0.2933}],"related":[{"site":"chat-sdk","path":"/docs/api/modals","via":"neighbor"},{"site":"streamdown","path":"/docs/link-safety","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/forms","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/multi-modal-chatbot","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 adapters connect your bot to messaging platforms such as Slack, Teams, and Google Chat.","outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"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/getting-started"},{"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.1782},{"site":"chat-sdk","path":"/docs/adapters","distance":0.1927},{"site":"chat-sdk","path":"/docs/contributing/documenting","distance":0.1984},{"site":"chat-sdk","path":"/docs/contributing/publishing","distance":0.2062}],"related":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/adapters","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/documenting","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/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"},{"site":"chat-sdk","path":"/docs/getting-started"}],"requires":[{"site":"chat-sdk","path":"/docs/usage"}],"neighbors":[{"site":"chat-sdk","path":"/docs/api/postable-message","distance":0.1071},{"site":"chat-sdk","path":"/docs/streaming","distance":0.1312},{"site":"chat-sdk","path":"/docs/cards","distance":0.1624},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1839},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.1994}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","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/api/thread","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"requires"},{"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.285},{"site":"eve","path":"/docs/channels/discord","distance":0.2926},{"site":"chat-sdk","path":"/docs/modals","distance":0.2933},{"site":"chat-sdk","path":"/docs/usage","distance":0.2965},{"site":"chat-sdk","path":"/docs/actions","distance":0.314}],"related":[{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs/getting-started","via":"requires"},{"site":"eve","path":"/docs/channels/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/actions","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/state-adapters","title":"State Adapters","summary":"State adapters store thread subscriptions, distributed locks, and cached data for your bot.","outbound":[{"site":"chat-sdk","path":"/docs/concurrency"},{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/history"}],"inbound":[{"site":"chat-sdk","path":"/docs"},{"site":"chat-sdk","path":"/docs/adapters"},{"site":"chat-sdk","path":"/docs/getting-started"},{"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","distance":0.2173},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2175},{"site":"chat-sdk","path":"/docs/usage","distance":0.2461},{"site":"chat-sdk","path":"/docs/adapters","distance":0.2576},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.2635}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/providers/adapters","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","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/testing","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/tanstack-ai"},{"site":"chat-sdk","path":"/docs/ai/to-ai-messages"}],"inbound":[{"site":"chat-sdk","path":"/docs/ai"},{"site":"chat-sdk","path":"/docs/ai/tanstack-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/api/postable-message","distance":0.1294},{"site":"chat-sdk","path":"/docs/posting-messages","distance":0.1312},{"site":"chat-sdk","path":"/docs/ai","distance":0.165},{"site":"chat-sdk","path":"/docs/ai/tanstack-ai","distance":0.1909},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","distance":0.1972}],"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":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","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":"chat-sdk","path":"/docs/api/postable-message","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/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"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-message-subjects-and-direct-sdk-access"}],"requires":[{"site":"chat-sdk","path":"/docs/handling-events"}],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-message-subjects-and-direct-sdk-access","distance":0.2778},{"site":"chat-sdk","path":"/docs/api/message","distance":0.3011},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.3447},{"site":"chat-sdk","path":"/docs/history","distance":0.3842},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.3969}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-message-subjects-and-direct-sdk-access","via":"inbound"},{"site":"chat-sdk","path":"/docs/handling-events","via":"requires"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"chat-sdk","path":"/docs/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/history","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/testing","title":"Testing","summary":"Test your bot handlers and custom adapters with @chat-adapter/tests, which provides 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.1703},{"site":"chat-sdk","path":"/docs","distance":0.2164},{"site":"chat-sdk","path":"/docs/usage","distance":0.2195},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.2249},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.2455}],"related":[{"site":"eve","path":"/docs/channels/chat-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/threads-messages-channels","via":"neighbor"},{"site":"chat-sdk","path":"/docs/contributing/publishing","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/adapters"},{"site":"chat-sdk","path":"/docs/api/chat"},{"site":"chat-sdk","path":"/docs/api/history"},{"site":"chat-sdk","path":"/docs/direct-messages"},{"site":"chat-sdk","path":"/docs/history"},{"site":"chat-sdk","path":"/docs/platform-adapters"}],"inbound":[{"site":"chat-sdk","path":"/docs/getting-started"},{"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.1106},{"site":"chat-sdk","path":"/docs/api/thread","distance":0.1306},{"site":"chat-sdk","path":"/docs/history","distance":0.1368},{"site":"chat-sdk","path":"/docs","distance":0.153},{"site":"chat-sdk","path":"/docs/api/channel","distance":0.1674}],"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/concurrency"},{"site":"chat-sdk","path":"/docs/error-handling"},{"site":"chat-sdk","path":"/docs/history"},{"site":"chat-sdk","path":"/docs/state-adapters"}],"inbound":[{"site":"chat-sdk","path":"/docs/error-handling"},{"site":"chat-sdk","path":"/docs/getting-started"},{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk"}],"requires":[{"site":"chat-sdk","path":"/docs/getting-started"}],"neighbors":[{"site":"chat-sdk","path":"/docs","distance":0.1104},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1106},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1567},{"site":"chat-sdk","path":"/docs/error-handling","distance":0.1604},{"site":"chat-sdk","path":"/docs/platform-adapters","distance":0.1782}],"related":[{"site":"vercel-kb","path":"/kb/guide/create-a-discord-support-bot-with-nuxt-and-redis","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ship-a-github-code-review-bot-with-hono-and-redis","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/slack-bot-vercel-blob","via":"inbound"},{"site":"eve","path":"/docs/channels/chat-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/testing","via":"neighbor"}]},{"site":"chat-sdk","path":"/docs/vercel-connect","title":"Vercel Connect","summary":"Authenticate Slack, Microsoft Teams, GitHub, Linear, Discord, Notion, and Telegram adapters with Vercel Connect, using 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/frameworks/chat-sdk"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"inbound":[{"site":"chat-sdk","path":"/docs/contributing/vendor-official"},{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-docs","path":"/docs/connect/frameworks/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"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"requires":[{"site":"chat-sdk","path":"/docs"}],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk","distance":0.0856},{"site":"vercel-docs","path":"/docs/connect","distance":0.1379},{"site":"chat-sdk","path":"/docs/create-chat-sdk","distance":0.1528},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","distance":0.1546},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference","distance":0.1708}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","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/slack-bot-vercel-blob","via":"inbound"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","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":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/decide"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/subagents"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents"},{"site":"vercel-web","path":"/blog/introducing-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/subagents","distance":0.2218},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.2254},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","distance":0.2488},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.2496},{"site":"eve","path":"/docs/tools","distance":0.2642}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","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":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.1134},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.1403},{"site":"chat-sdk","path":"/docs/usage","distance":0.1567},{"site":"chat-sdk","path":"/docs","distance":0.1801},{"site":"chat-sdk","path":"/docs/threads-messages-channels","distance":0.1808}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel","via":"inbound"},{"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":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","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":[{"site":"eve","path":"/docs/channels/mcp"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/extensions"},{"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/protocols/ucp"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/schedules"}],"inbound":[{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"},{"site":"eve","path":"/docs/protocols/ucp"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/eve","distance":0.1696},{"site":"eve","path":"/docs/channels/overview","distance":0.1958},{"site":"eve","path":"/docs/channels/slack","distance":0.2119},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2241},{"site":"eve","path":"/docs/channels/mcp","distance":0.2647}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.1823},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2003},{"site":"eve","path":"/docs/channels/telegram","distance":0.2195},{"site":"eve","path":"/docs/channels/teams","distance":0.2243},{"site":"eve","path":"/docs/channels/github","distance":0.231}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/channels/mcp"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/continuations"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.1543},{"site":"eve","path":"/docs/guides/client/overview","distance":0.1694},{"site":"eve","path":"/docs/channels/custom","distance":0.1696},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1696},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.1859}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.2248},{"site":"eve","path":"/docs/channels/discord","distance":0.231},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.2355},{"site":"eve","path":"/docs/channels/teams","distance":0.2439},{"site":"eve","path":"/docs/channels/linear","distance":0.2462}],"related":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/github","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.2201},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","distance":0.2396},{"site":"eve","path":"/docs/channels/github","distance":0.2462},{"site":"eve","path":"/docs/channels/linq","distance":0.2552},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2613}],"related":[{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"eve","path":"/docs/channels/linq","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/linq","title":"Linq","summary":"Connect an eve agent to iMessage and SMS through Linq.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-linq"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-linq","distance":0.1985},{"site":"eve","path":"/docs/channels/overview","distance":0.2161},{"site":"eve","path":"/docs/channels/twilio","distance":0.2348},{"site":"eve","path":"/docs/channels/discord","distance":0.2508},{"site":"eve","path":"/docs/channels/linear","distance":0.2552}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-linq","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/linear","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/mcp","title":"MCP Channel","summary":"Publish an eve agent as an MCP server with auth support.","outbound":[{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/connections/mcp"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/auth-and-route-protection","distance":0.2547},{"site":"eve","path":"/docs/connections","distance":0.2559},{"site":"eve","path":"/docs/subagents","distance":0.2594},{"site":"eve","path":"/docs/channels/eve","distance":0.2646},{"site":"eve","path":"/docs/channels/custom","distance":0.2647}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-software-factory","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","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"},{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/discord"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/github"},{"site":"eve","path":"/docs/channels/linear"},{"site":"eve","path":"/docs/channels/linq"},{"site":"eve","path":"/docs/channels/mcp"},{"site":"eve","path":"/docs/channels/photon"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/channels/teams"},{"site":"eve","path":"/docs/channels/telegram"},{"site":"eve","path":"/docs/channels/twilio"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"},{"site":"eve","path":"/docs/responsible-use"}],"inbound":[{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/discord"},{"site":"eve","path":"/docs/channels/github"},{"site":"eve","path":"/docs/channels/linear"},{"site":"eve","path":"/docs/channels/linq"},{"site":"eve","path":"/docs/channels/photon"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/channels/teams"},{"site":"eve","path":"/docs/channels/telegram"},{"site":"eve","path":"/docs/channels/twilio"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/evals/targets"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/protocols/ucp"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/schedules"},{"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/chat-sdk","distance":0.1134},{"site":"eve","path":"/docs/channels/eve","distance":0.1543},{"site":"eve","path":"/docs/channels/discord","distance":0.1823},{"site":"eve","path":"/docs/guides/client/overview","distance":0.1914},{"site":"eve","path":"/docs/channels/telegram","distance":0.1951}],"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":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/photon","title":"Photon","summary":"Connect an eve agent to iMessage through Photon.","outbound":[{"site":"eve","path":"/docs/channels/overview"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"vercel-changelog","path":"/changelog/imessage-support-for-eve-agents"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/imessage-support-for-eve-agents","distance":0.2139},{"site":"eve","path":"/docs/channels/linq","distance":0.2968},{"site":"eve","path":"/docs/channels/overview","distance":0.3015},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","distance":0.3171},{"site":"eve","path":"/docs/channels/eve","distance":0.3192}],"related":[{"site":"vercel-changelog","path":"/changelog/imessage-support-for-eve-agents","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-photon-support","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/linq","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/slack","title":"Slack","summary":"Reach your agent from Slack app mentions, DMs, slash commands, and interactive callbacks.","outbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/tasks"},{"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":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"vercel-changelog","path":"/changelog/build-slack-agents-with-vercel-slack-bolt"},{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/custom","distance":0.2119},{"site":"chat-sdk","path":"/docs/handling-events","distance":0.2128},{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls","distance":0.2496},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.261},{"site":"eve","path":"/docs/channels/eve","distance":0.2631}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/slackbot","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/build-slack-agents-with-vercel-slack-bolt","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","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-web","path":"/blog/building-slack-agents-can-be-easy","via":"inbound"},{"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/threads-messages-channels","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/chat","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.197},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2061},{"site":"eve","path":"/docs/channels/telegram","distance":0.2103},{"site":"eve","path":"/docs/channels/discord","distance":0.2243},{"site":"eve","path":"/docs/channels/twilio","distance":0.24}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/twilio","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/twilio","distance":0.1878},{"site":"eve","path":"/docs/channels/overview","distance":0.1951},{"site":"eve","path":"/docs/channels/teams","distance":0.2103},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2182},{"site":"eve","path":"/docs/channels/discord","distance":0.2195}],"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":"eve","path":"/docs/channels/twilio","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/channels/linq","via":"neighbor"}]},{"site":"eve","path":"/docs/channels/twilio","title":"Twilio","summary":"Reach your agent over SMS and speech-transcribed phone calls with Twilio.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/channels/overview"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/telegram","distance":0.1878},{"site":"eve","path":"/docs/channels/overview","distance":0.216},{"site":"eve","path":"/docs/channels/linq","distance":0.2348},{"site":"eve","path":"/docs/channels/teams","distance":0.24},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2544}],"related":[{"site":"eve","path":"/docs/channels/telegram","via":"neighbor"},{"site":"eve","path":"/docs/channels/linq","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"}]},{"site":"eve","path":"/docs/code-extension","title":"Code Extension","summary":"Mount eve's coding extension, eve-code, and see its latest benchmark results against other coding agent harnesses.","outbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"}],"inbound":[{"site":"eve","path":"/docs/extensions"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/extensions","distance":0.1681},{"site":"vercel-docs","path":"/docs/eve","distance":0.2412},{"site":"eve","path":"/docs/sandbox","distance":0.2434},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.2448},{"site":"vercel-changelog","path":"/changelog/eve-extensions","distance":0.2452}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/self-modification","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/install-integrations","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/built-in-tools","title":"Built-in Tools","summary":"The default and opt-in tools eve provides, including glob, grep, and sleep.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/connections"},{"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/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/tool-stubs"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools/tasks","distance":0.1866},{"site":"eve","path":"/docs/tools","distance":0.2086},{"site":"eve","path":"/docs/tools/workflows","distance":0.2146},{"site":"eve","path":"/docs/reference/typescript-api","distance":0.2249},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.2259}],"related":[{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","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":[{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/skills"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/instructions","distance":0.1016},{"site":"eve","path":"/docs/skills","distance":0.1664},{"site":"eve","path":"/docs/concepts/security-model","distance":0.2461},{"site":"eve","path":"/docs/sandbox","distance":0.2571},{"site":"eve","path":"/docs/guides/session-context","distance":0.2597}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/reference/agent-files","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/team-playbooks","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/memory"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/custom-provider"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.2532},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.2671},{"site":"eve","path":"/docs/concepts/context-control","distance":0.283},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.291},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3008}],"related":[{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"inbound"},{"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/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":"/docs/ai-sdk-harnesses/workflow-utilities","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","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":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/how-it-runs"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools/tasks","distance":0.2949},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.3003},{"site":"eve","path":"/docs/agent-config","distance":0.3009},{"site":"eve","path":"/docs/subagents","distance":0.3122},{"site":"workflow","path":"/docs/whats-new","distance":0.3183}],"related":[{"site":"workflow","path":"/docs/whats-new","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"neighbor"},{"site":"workflow","path":"/docs/configuration/runtime-tuning","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks-upgrade","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"}]},{"site":"eve","path":"/docs/concepts/project-structure","title":"Project Structure","summary":"Start with one agent, keep application code beside it, and split into a workspace only when you need separately addressable agents.","outbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"}],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/install-integrations"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/tools/workflows"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/reference/agent-files","distance":0.1692},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1753},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1785},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.1957},{"site":"eve","path":"/docs/getting-started","distance":0.1987}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/tanstack","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/responsible-use"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"}],"inbound":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/connections"},{"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/sandbox"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.1863},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1935},{"site":"eve","path":"/docs/sandbox","distance":0.1969},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.2103},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2133}],"related":[{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-sanity-copilot","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","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/agent-config"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/mcp"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/guides/client/continuations"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/tasks"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tools/tasks","distance":0.1444},{"site":"eve","path":"/docs/guides/client/streaming","distance":0.1754},{"site":"eve","path":"/docs/tools/workflows","distance":0.2081},{"site":"eve","path":"/docs/tools","distance":0.2095},{"site":"eve","path":"/docs/guides/frontend/overview","distance":0.2243}],"related":[{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks-upgrade","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","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":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/subagents"}],"inbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/tutorial/remember-definitions"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/remember-definitions","distance":0.1738},{"site":"eve","path":"/docs/guides/session-context","distance":0.2732},{"site":"eve","path":"/docs/memory","distance":0.2776},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3013},{"site":"eve","path":"/docs/guides/client/continuations","distance":0.3034}],"related":[{"site":"eve","path":"/docs/tutorial/remember-definitions","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/next/track-agent-token-usage","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/continuations","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","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/channels/overview"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"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/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/tools"},{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","distance":0.1789},{"site":"eve","path":"/docs/connections/mcp","distance":0.1824},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","distance":0.2182},{"site":"eve","path":"/docs/channels/mcp","distance":0.2559},{"site":"eve","path":"/docs/channels/eve","distance":0.2627}],"related":[{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/ai-sdk-and-mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/linear-agent-vercel-connect","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","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/channels/mcp"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/channels/linear"},{"site":"eve","path":"/docs/channels/mcp"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"requires":[{"site":"eve","path":"/docs/connections"}],"neighbors":[{"site":"eve","path":"/docs/connections/openapi","distance":0.1494},{"site":"eve","path":"/docs/connections","distance":0.1824},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","distance":0.1895},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","distance":0.2328},{"site":"eve","path":"/docs/concepts/security-model","distance":0.2352}],"related":[{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"v0","path":"/docs/MCP","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/ai-sdk-and-mcp","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/dynamic-capabilities","via":"inbound"},{"site":"eve","path":"/docs/reference/typescript-api","via":"inbound"}]},{"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":[{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/human-in-the-loop"}],"inbound":[{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents"}],"requires":[{"site":"eve","path":"/docs/connections"}],"neighbors":[{"site":"eve","path":"/docs/connections/mcp","distance":0.1494},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.2551},{"site":"eve","path":"/docs/concepts/security-model","distance":0.257},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2773},{"site":"eve","path":"/docs/connections","distance":0.2776}],"related":[{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","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":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/running"},{"site":"eve","path":"/docs/guides/client/output-schema"}],"inbound":[{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/evals/tool-stubs"},{"site":"eve","path":"/docs/skills"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.1668},{"site":"eve","path":"/docs/evals/cases","distance":0.1733},{"site":"eve","path":"/docs/evals/judge","distance":0.2069},{"site":"eve","path":"/docs/evals/reporters","distance":0.2489},{"site":"eve","path":"/docs/evals/tool-stubs","distance":0.2505}],"related":[{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/evals/targets","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","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":[{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/targets"},{"site":"eve","path":"/docs/guides/client/messages"}],"inbound":[{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/evals/targets"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.0993},{"site":"eve","path":"/docs/evals/assertions","distance":0.1733},{"site":"eve","path":"/docs/evals/running","distance":0.1856},{"site":"eve","path":"/docs/evals/reporters","distance":0.195},{"site":"eve","path":"/docs/evals/judge","distance":0.2253}],"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/reporters","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/judge","title":"Judge","summary":"Grade evals with decision models using criteria, typed questions, or batches, and set thresholds on each assertion.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/reporters"},{"site":"eve","path":"/docs/evals/targets"},{"site":"eve","path":"/docs/guides/decide"}],"inbound":[{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/evals/reporters"},{"site":"eve","path":"/docs/guides/decide"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.2036},{"site":"eve","path":"/docs/evals/assertions","distance":0.2069},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","distance":0.214},{"site":"eve","path":"/docs/evals/cases","distance":0.2253},{"site":"eve","path":"/docs/evals/reporters","distance":0.2374}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/typesafe-ai-jev-now-available-on-ai-gateway","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","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":[{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/reporters"},{"site":"eve","path":"/docs/evals/running"},{"site":"eve","path":"/docs/evals/targets"},{"site":"eve","path":"/docs/evals/tool-stubs"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/reference/typescript-api"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/cases","distance":0.0993},{"site":"eve","path":"/docs/evals/running","distance":0.1076},{"site":"eve","path":"/docs/evals/reporters","distance":0.1436},{"site":"eve","path":"/docs/evals/assertions","distance":0.1668},{"site":"eve","path":"/docs/evals/targets","distance":0.2008}],"related":[{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","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":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"inbound"},{"site":"eve","path":"/docs/reference/cli","via":"inbound"},{"site":"eve","path":"/docs/reference/typescript-api","via":"inbound"}]},{"site":"eve","path":"/docs/evals/reporters","title":"Reporters","summary":"Ship eval results to Braintrust, Datadog, or JUnit XML. eve runs and scores everything itself.","outbound":[{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/running"}],"inbound":[{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/evals/running"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.1436},{"site":"eve","path":"/docs/evals/running","distance":0.1638},{"site":"eve","path":"/docs/evals/cases","distance":0.195},{"site":"eve","path":"/docs/evals/judge","distance":0.2374},{"site":"eve","path":"/docs/evals/assertions","distance":0.2489}],"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/cases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/testing-if-bash-is-all-you-need","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"},{"site":"eve","path":"/docs/evals/targets","via":"neighbor"},{"site":"eve","path":"/docs/observability/agent-runs","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":[{"site":"eve","path":"/docs/evals/reporters"},{"site":"eve","path":"/docs/evals/targets"},{"site":"eve","path":"/docs/reference/cli"}],"inbound":[{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/evals/reporters"},{"site":"eve","path":"/docs/evals/targets"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.1076},{"site":"eve","path":"/docs/evals/reporters","distance":0.1638},{"site":"eve","path":"/docs/evals/cases","distance":0.1856},{"site":"eve","path":"/docs/evals/targets","distance":0.1935},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.257}],"related":[{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/an-introduction-to-evals","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"},{"site":"eve","path":"/docs/evals/judge","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/running"},{"site":"eve","path":"/docs/schedules"}],"inbound":[{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/evals/running"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/running","distance":0.1935},{"site":"eve","path":"/docs/evals/overview","distance":0.2008},{"site":"eve","path":"/docs/evals/cases","distance":0.235},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2645},{"site":"eve","path":"/docs/evals/reporters","distance":0.2768}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/evals/reporters","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/assertions","via":"neighbor"}]},{"site":"eve","path":"/docs/evals/tool-stubs","title":"Tool Stubs","summary":"Define tool outcomes and outcome sequences in your evals.","outbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/evals/overview","distance":0.2397},{"site":"eve","path":"/docs/tools","distance":0.2465},{"site":"eve","path":"/docs/evals/assertions","distance":0.2505},{"site":"eve","path":"/docs/tools/tasks","distance":0.2618},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2637}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","via":"neighbor"},{"site":"eve","path":"/docs/tools","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/subagents","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/code-extension"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/install-integrations"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory"},{"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/channels/custom"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/code-extension"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/install-integrations"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"vercel-changelog","path":"/changelog/eve-extensions"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/eve-extensions","distance":0.16},{"site":"eve","path":"/docs/code-extension","distance":0.1681},{"site":"eve","path":"/docs/install-integrations","distance":0.2174},{"site":"eve","path":"/docs/guides/self-modification","distance":0.2197},{"site":"eve","path":"/docs/channels/overview","distance":0.2395}],"related":[{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","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","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/reference/agent-files","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/getting-started","title":"Get started with eve: durable AI agents in TypeScript","summary":"Create an eve project, configure model credentials, 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/concepts/project-structure"},{"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/dev-tui"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/first-agent"}],"inbound":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/tutorial/first-agent"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework"},{"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":"eve","path":"/docs/tutorial/first-agent","distance":0.1418},{"site":"vercel-docs","path":"/docs/eve","distance":0.1639},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.1858},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1883},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1937}],"related":[{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"inbound"},{"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":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","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":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/evals/tool-stubs"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/discord"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/github"},{"site":"eve","path":"/docs/channels/linear"},{"site":"eve","path":"/docs/channels/linq"},{"site":"eve","path":"/docs/channels/mcp"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/channels/teams"},{"site":"eve","path":"/docs/channels/telegram"},{"site":"eve","path":"/docs/channels/twilio"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/evals/tool-stubs"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/ship-it"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve"},{"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.2367},{"site":"eve","path":"/docs/guides/remote-agents","distance":0.237},{"site":"eve","path":"/docs/channels/mcp","distance":0.2547},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","distance":0.2905},{"site":"eve","path":"/docs/connections","distance":0.2962}],"related":[{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"inbound"},{"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/eve-software-factory","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nuxt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"eve","path":"/docs/subagents","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":[{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/streaming"}],"inbound":[{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/client/streaming"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/streaming","distance":0.1987},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2107},{"site":"eve","path":"/docs/guides/client/messages","distance":0.2253},{"site":"eve","path":"/docs/guides/session-context","distance":0.2901},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.3024}],"related":[{"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/loading-state","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","via":"neighbor"},{"site":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","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":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/guides/client/continuations"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/evals/cases"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/tutorial/run-analysis"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/streaming","distance":0.1512},{"site":"eve","path":"/docs/guides/client/overview","distance":0.1903},{"site":"eve","path":"/docs/guides/client/continuations","distance":0.2253},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.252},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.2547}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","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":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/subagents"}],"inbound":[{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/client/streaming"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/output","distance":0.2748},{"site":"ai-sdk","path":"/docs/ai-sdk-core/generating-structured-data","distance":0.2967},{"site":"eve","path":"/docs/guides/client/messages","distance":0.301},{"site":"ai-sdk","path":"/cookbook/next/stream-object","distance":0.3142},{"site":"eve","path":"/docs/guides/client/streaming","distance":0.329}],"related":[{"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":"ai-sdk","path":"/cookbook/next/stream-object","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-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":"ai-sdk","path":"/docs/reference/ai-sdk-core/json-schema","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/object-generation","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/evals/cases","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":[{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/continuations"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/frontend/overview"}],"inbound":[{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tutorial/run-analysis"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/eve","distance":0.1694},{"site":"eve","path":"/docs/guides/client/messages","distance":0.1903},{"site":"eve","path":"/docs/channels/overview","distance":0.1914},{"site":"eve","path":"/docs/guides/client/continuations","distance":0.2107},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2182}],"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/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","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":[{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/continuations"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/guides/client/continuations"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/tasks-upgrade"},{"site":"eve","path":"/docs/tools/workflows"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/messages","distance":0.1512},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.1754},{"site":"eve","path":"/docs/guides/client/continuations","distance":0.1987},{"site":"eve","path":"/docs/tools/tasks","distance":0.2113},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2211}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"workflow","path":"/docs/ai/resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/decide","title":"Automatic Model Selection","summary":"Choose agent models automatically or ask typed questions in your tools and application code.","outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/evals/judge"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/reference/typescript-api"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","distance":0.1653},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","distance":0.1994},{"site":"eve","path":"/docs/evals/judge","distance":0.2378},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","distance":0.256},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","distance":0.2636}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/typesafe-ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/decide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/decision","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/provider-management","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"inbound"}]},{"site":"eve","path":"/docs/guides/deployment/overview","title":"Deployment","summary":"Choose a deployment strategy and prepare an eve agent for production.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1176},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.1352},{"site":"vercel-docs","path":"/docs/eve","distance":0.1798},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1845},{"site":"eve","path":"/docs/getting-started","distance":0.1937}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","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":"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/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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 provider, and routing.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/providers-and-models"},{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/subagents"}],"inbound":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/tanstack"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1352},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1373},{"site":"vercel-docs","path":"/docs/eve","distance":0.1811},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1832},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1955}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","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":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.1176},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.131},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.1373},{"site":"vercel-docs","path":"/docs/eve","distance":0.1384},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1607}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","via":"inbound"},{"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":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/protocols/acp"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/tools/tasks"}],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/reference/cli"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"},{"site":"vercel-kb","path":"/kb/guide/software-factory-browser"},{"site":"vercel-kb","path":"/kb/guide/software-factory-vercel-mcp"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve","distance":0.1616},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1722},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1733},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1799},{"site":"eve","path":"/docs/getting-started","distance":0.1858}],"related":[{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/software-factory-browser","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/software-factory-vercel-mcp","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-slack-agent-starter","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","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/remote-agents","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/dynamic-capabilities","title":"Dynamic Capabilities","summary":"Resolve models, subagents, connections, tools, skills, and instructions at runtime with defineDynamic resolver events.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory/custom-provider"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/ship-it"},{"site":"eve","path":"/docs/tutorial/team-playbooks"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"},{"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.2273},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.2593},{"site":"eve","path":"/docs/subagents","distance":0.26},{"site":"eve","path":"/docs/tools/workflows","distance":0.2631},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","distance":0.2704}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"inbound"},{"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":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-realtime","via":"neighbor"},{"site":"eve","path":"/docs/tools/workflows","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability","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":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/schedules"}],"inbound":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/install-integrations"},{"site":"eve","path":"/docs/schedules"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.131},{"site":"eve","path":"/docs/guides/frontend/tanstack","distance":0.1437},{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.1483},{"site":"eve","path":"/docs/channels/eve","distance":0.1696},{"site":"vercel-docs","path":"/docs/eve","distance":0.1698}],"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/guides/frontend/tanstack","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","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":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1483},{"site":"eve","path":"/docs/guides/frontend/sveltekit","distance":0.1582},{"site":"eve","path":"/docs/guides/frontend/tanstack","distance":0.166},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","distance":0.1791},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1825}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/tanstack","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/concepts/project-structure","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/channels/overview"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"},{"site":"eve","path":"/docs/guides/frontend/tanstack"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/human-in-the-loop","distance":0.1987},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.2243},{"site":"eve","path":"/docs/guides/client/streaming","distance":0.2627},{"site":"eve","path":"/docs/channels/eve","distance":0.2635},{"site":"eve","path":"/docs/channels/custom","distance":0.2668}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agent-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"eve","path":"/docs/connections","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":"eve","path":"/docs/getting-started"},{"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/guides/frontend/use-eve-agent-svelte"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.1582},{"site":"eve","path":"/docs/guides/frontend/tanstack","distance":0.1594},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","distance":0.1691},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2009},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.2226}],"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-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/tanstack","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/frontend/tanstack","title":"TanStack Start","summary":"Run an eve agent and a TanStack Start app as one project with the eveTanStack Vite plugin.","outbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"vercel-docs","path":"/docs/services"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/install-integrations"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.1437},{"site":"eve","path":"/docs/guides/frontend/sveltekit","distance":0.1594},{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.166},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1796},{"site":"vercel-docs","path":"/docs/eve","distance":0.1995}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/sveltekit","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nuxt","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","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":[{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/frontend/sveltekit"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","distance":0.1214},{"site":"eve","path":"/docs/guides/frontend/sveltekit","distance":0.1691},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2193},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2334},{"site":"eve","path":"/docs/channels/overview","distance":0.2443}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-vue","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","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":[{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/overview"}],"inbound":[{"site":"eve","path":"/docs/guides/frontend/nuxt"},{"site":"eve","path":"/docs/guides/frontend/overview"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","distance":0.1214},{"site":"eve","path":"/docs/guides/frontend/nuxt","distance":0.1791},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2173},{"site":"eve","path":"/docs/guides/client/overview","distance":0.2372},{"site":"eve","path":"/docs/channels/overview","distance":0.2506}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/hooks","title":"Hooks","summary":"Subscribe to runtime stream events from agent/hooks/.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/client/streaming","distance":0.2286},{"site":"eve","path":"/docs/channels/overview","distance":0.2344},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2403},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","distance":0.267},{"site":"eve","path":"/docs/channels/custom","distance":0.2706}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/tools","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":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"eve","path":"/docs/channels/custom","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/remote-agents","title":"Remote Agents","summary":"Call another eve deployment as a subagent with defineRemoteAgent: the same tool call as a local subagent, with outbound auth and durable callbacks.","outbound":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools/tasks-upgrade"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-docs","path":"/docs/deployment-protection"}],"inbound":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools/tasks-upgrade"},{"site":"eve","path":"/docs/tools/workflows"},{"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.1863},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.1973},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","distance":0.1975},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.2108},{"site":"eve","path":"/docs/channels/eve","distance":0.2154}],"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/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/concepts/project-structure","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/self-modification","title":"Self-Modification","summary":"Ask your agent to update its own authored files during local development, or let a deployed agent propose changes as draft pull requests.","outbound":[{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/subagents"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/extensions","distance":0.2197},{"site":"eve","path":"/docs/code-extension","distance":0.2511},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2634},{"site":"eve","path":"/docs/reference/agent-files","distance":0.2774},{"site":"eve","path":"/docs/getting-started","distance":0.2789}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"eve","path":"/docs/reference/agent-files","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"}]},{"site":"eve","path":"/docs/guides/session-context","title":"Session Context","summary":"Use ctx.session and runtime accessors inside eve-managed execution.","outbound":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/reference/typescript-api"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/sandbox","distance":0.2229},{"site":"eve","path":"/docs/concepts/context-control","distance":0.2597},{"site":"eve","path":"/docs/concepts/state","distance":0.2732},{"site":"eve","path":"/docs/concepts/security-model","distance":0.2841},{"site":"eve","path":"/docs/guides/hooks","distance":0.2859}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/continuations","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/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/agent-config"},{"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/decide"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/workflows"}],"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/connections/openapi"},{"site":"eve","path":"/docs/guides/decide"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory"},{"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/guides/frontend/overview","distance":0.1987},{"site":"eve","path":"/docs/tools/tasks","distance":0.2125},{"site":"eve","path":"/docs/tools/workflows","distance":0.2313},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.2339},{"site":"eve","path":"/docs/tools","distance":0.2433}],"related":[{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory","via":"inbound"},{"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":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/approvals","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/streaming","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/subagents","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":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/guides/frontend/tanstack"}],"inbound":[{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/skills"},{"site":"vercel-changelog","path":"/changelog/discover-and-install-eve-integrations-from-the-cli"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/discover-and-install-eve-integrations-from-the-cli","distance":0.166},{"site":"eve","path":"/docs/extensions","distance":0.2174},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2376},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2431},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.2434}],"related":[{"site":"vercel-changelog","path":"/changelog/discover-and-install-eve-integrations-from-the-cli","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/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"}]},{"site":"eve","path":"/docs/instructions","title":"Instructions","summary":"Add system context or durable user context with instructions.md or instructions.ts.","outbound":[{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tutorial/first-agent"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/context-control","distance":0.1016},{"site":"v0","path":"/docs/instructions","distance":0.2361},{"site":"eve","path":"/docs/skills","distance":0.2375},{"site":"ai-sdk","path":"/docs/foundations/prompts","distance":0.2701},{"site":"eve","path":"/docs/channels/overview","distance":0.274}],"related":[{"site":"v0","path":"/docs/instructions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/team-playbooks","via":"neighbor"}]},{"site":"eve","path":"/docs/memory","title":"Memory","summary":"Give an agent context that outlives a session: eve owns the memory slots, scope, and lifecycle; a provider owns the storage and retrieval.","outbound":[{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/memory/custom-provider"},{"site":"eve","path":"/docs/memory/file"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory"}],"inbound":[{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory/custom-provider"},{"site":"eve","path":"/docs/memory/file"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/memory/custom-provider","distance":0.0887},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","distance":0.1029},{"site":"eve","path":"/docs/memory/file","distance":0.1592},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","distance":0.1628},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.1777}],"related":[{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/sandbox","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"inbound"},{"site":"eve","path":"/docs/extensions","via":"inbound"}]},{"site":"eve","path":"/docs/memory/custom-provider","title":"Build a Memory Provider","summary":"Implement the recall, capture, and tools contract so any store or memory service can back an eve memory slot.","outbound":[{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/file"}],"inbound":[{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/file"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"}],"requires":[{"site":"eve","path":"/docs/memory"}],"neighbors":[{"site":"eve","path":"/docs/memory","distance":0.0887},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","distance":0.1165},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","distance":0.1632},{"site":"eve","path":"/docs/memory/file","distance":0.18},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.1882}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","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":"/providers/community-providers/mem0","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"}]},{"site":"eve","path":"/docs/memory/file","title":"File Memory","summary":"Configure the built-in fileMemory() provider: a bounded, model-maintained document per scope with save and remove tools.","outbound":[{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/custom-provider"}],"inbound":[{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/custom-provider"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider"}],"requires":[{"site":"eve","path":"/docs/memory"}],"neighbors":[{"site":"eve","path":"/docs/memory","distance":0.1592},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","distance":0.1633},{"site":"eve","path":"/docs/memory/custom-provider","distance":0.18},{"site":"ai-sdk","path":"/docs/agents/memory","distance":0.226},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.2278}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives-eve-agent","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nextjs","via":"neighbor"}]},{"site":"eve","path":"/docs/observability/agent-runs","title":"Agent Runs","summary":"Inspect eve sessions in Vercel and configure the Agent Runs destination.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/observability/instrumentation-migration"},{"site":"eve","path":"/docs/observability/otel"},{"site":"vercel-docs","path":"/docs/cli/traces"},{"site":"vercel-docs","path":"/docs/plans/enterprise"},{"site":"vercel-docs","path":"/docs/plans/hobby"},{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing"}],"inbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/instrumentation-migration"},{"site":"eve","path":"/docs/observability/otel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.0777},{"site":"eve","path":"/docs/observability/otel","distance":0.1523},{"site":"vercel-docs","path":"/docs/eve/observability","distance":0.1749},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","distance":0.2169},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.2255}],"related":[{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/observability/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"inbound"}]},{"site":"eve","path":"/docs/observability/instrumentation","title":"Instrumentation","summary":"Configure lifecycle instrumentation, handle runtime events, and control the content each destination receives.","outbound":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/observability/instrumentation-migration"},{"site":"eve","path":"/docs/observability/otel"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/observability/instrumentation-migration"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/reference/typescript-api"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/observability/otel","distance":0.1605},{"site":"eve","path":"/docs/observability/instrumentation-migration","distance":0.1608},{"site":"eve","path":"/docs/observability/agent-runs","distance":0.2475},{"site":"vercel-docs","path":"/docs/eve/observability","distance":0.2707},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.2851}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"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/guides/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"inbound"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"inbound"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"inbound"},{"site":"eve","path":"/docs/reference/agent-files","via":"inbound"}]},{"site":"eve","path":"/docs/observability/instrumentation-migration","title":"Migrate Instrumentation","summary":"Move a single instrumentation.ts configuration into lifecycle instrumentation and OpenTelemetry destinations.","outbound":[{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/otel"}],"inbound":[{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/otel"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/observability/instrumentation","distance":0.1608},{"site":"eve","path":"/docs/observability/otel","distance":0.1852},{"site":"vercel-docs","path":"/docs/eve/observability","distance":0.2519},{"site":"eve","path":"/docs/observability/agent-runs","distance":0.2692},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.3623}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/observability/otel","title":"OpenTelemetry","summary":"Configure OpenTelemetry destinations, content capture, and third-party exports.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/instrumentation-migration"}],"inbound":[{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/observability/agent-runs"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/instrumentation-migration"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"vercel-docs","path":"/docs/eve/observability"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve/observability","distance":0.0833},{"site":"eve","path":"/docs/observability/agent-runs","distance":0.1523},{"site":"eve","path":"/docs/observability/instrumentation","distance":0.1605},{"site":"eve","path":"/docs/observability/instrumentation-migration","distance":0.1852},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.2048}],"related":[{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"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/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"inbound"},{"site":"eve","path":"/docs/reference/typescript-api","via":"inbound"}]},{"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":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/guides/hooks"}],"inbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/github"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/patterns/dynamic-scheduling"},{"site":"eve","path":"/docs/tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.2578},{"site":"eve","path":"/docs/channels/custom","distance":0.292},{"site":"eve","path":"/docs/patterns/dynamic-scheduling","distance":0.3036},{"site":"eve","path":"/docs/channels/github","distance":0.3137},{"site":"eve","path":"/docs/channels/slack","distance":0.3167}],"related":[{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls","via":"neighbor"},{"site":"chat-sdk","path":"/docs/concurrency","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/patterns/dynamic-scheduling","via":"neighbor"},{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"eve","path":"/docs/channels/slack","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","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":[{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"}],"inbound":[{"site":"eve","path":"/docs/schedules"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/schedules","distance":0.1466},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications","distance":0.3036},{"site":"eve","path":"/docs/channels/overview","distance":0.3189},{"site":"eve","path":"/docs/concepts/context-control","distance":0.323},{"site":"eve","path":"/docs/instructions","distance":0.3251}],"related":[{"site":"eve","path":"/docs/schedules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","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":[{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth"}],"inbound":[{"site":"eve","path":"/docs/human-in-the-loop"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/patterns/multi-tenant-auth","distance":0.2127},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2297},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","distance":0.2831},{"site":"eve","path":"/docs/connections/openapi","distance":0.2856},{"site":"eve","path":"/docs/connections/mcp","distance":0.2861}],"related":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/policy-tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/responsible-use","via":"neighbor"},{"site":"eve","path":"/docs/evals/overview","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":[{"site":"eve","path":"/docs/guides/auth-and-route-protection"}],"inbound":[{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.2127},{"site":"eve","path":"/docs/connections/mcp","distance":0.2399},{"site":"eve","path":"/docs/concepts/security-model","distance":0.241},{"site":"eve","path":"/docs/connections/openapi","distance":0.2551},{"site":"eve","path":"/docs/connections","distance":0.2703}],"related":[{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"},{"site":"eve","path":"/docs/connections","via":"neighbor"}]},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","title":"Multi-Tenant Memory","summary":"Bind an eve memory provider to an authenticated tenant and caller scope.","outbound":[{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/custom-provider"}],"inbound":[{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/memory"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives-eve-agent"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/memory","distance":0.1777},{"site":"eve","path":"/docs/memory/custom-provider","distance":0.1882},{"site":"eve","path":"/docs/memory/file","distance":0.2278},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","distance":0.267},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","distance":0.273}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives-eve-agent","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/supermemory","via":"neighbor"},{"site":"eve","path":"/docs/memory/file","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-auth","via":"neighbor"},{"site":"eve","path":"/docs/concepts/state","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"}]},{"site":"eve","path":"/docs/protocols/acp","title":"Editor Integration (ACP)","summary":"Use local or deployed eve agents from Agent Client Protocol clients.","outbound":[],"inbound":[{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/reference/cli"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/acp","distance":0.2608},{"site":"eve","path":"/docs/getting-started","distance":0.275},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2858},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","distance":0.2869},{"site":"vercel-docs","path":"/docs/eve","distance":0.2989}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/acp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/concepts/project-structure","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/protocols/ucp","title":"Serve a UCP Profile","summary":"Serve a UCP profile at /.well-known/ucp from a custom eve channel.","outbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/overview"}],"inbound":[{"site":"eve","path":"/docs/channels/custom"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/overview","distance":0.3216},{"site":"eve","path":"/docs/connections/mcp","distance":0.3695},{"site":"eve","path":"/docs/channels/eve","distance":0.3867},{"site":"eve","path":"/docs/channels/discord","distance":0.3882},{"site":"vercel-shop","path":"/docs/reference/routes","distance":0.3884}],"related":[{"site":"vercel-shop","path":"/docs/reference/routes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-shopify-mcp-agent-on-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/build-shop","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/agent","via":"neighbor"},{"site":"eve","path":"/docs/connections/mcp","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/channels/discord","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"}]},{"site":"eve","path":"/docs/reference/agent-files","title":"Agent Files","summary":"Look up agent directory slots, path-derived names, subagent files, and filesystem discovery rules.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"}],"inbound":[{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/reference/cli"},{"site":"eve","path":"/docs/reference/typescript-api"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/project-structure","distance":0.1692},{"site":"eve","path":"/docs/getting-started","distance":0.2261},{"site":"eve","path":"/docs/extensions","distance":0.2502},{"site":"eve","path":"/docs/sandbox","distance":0.265},{"site":"eve","path":"/docs/concepts/context-control","distance":0.2693}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/guides/remote-agents","via":"neighbor"},{"site":"eve","path":"/docs/guides/self-modification","via":"neighbor"}]},{"site":"eve","path":"/docs/reference/cli","title":"CLI","summary":"Reference for every eve CLI command.","outbound":[{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/protocols/acp"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/telemetry"}],"inbound":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/evals/running"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/reference/agent-files"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2394},{"site":"vercel-docs","path":"/docs/eve","distance":0.2465},{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.2773},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.2881},{"site":"eve","path":"/docs/guides/frontend/nextjs","distance":0.2884}],"related":[{"site":"vercel-docs","path":"/docs/eve","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/eve/concepts","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":"eve","path":"/docs/guides/deployment/vercel","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/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"}]},{"site":"eve","path":"/docs/reference/telemetry","title":"CLI Telemetry","summary":"Learn what eve CLI telemetry collects and how to control it.","outbound":[],"inbound":[{"site":"eve","path":"/docs/reference/cli"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","distance":0.2164},{"site":"vercel-docs","path":"/docs/cli/telemetry","distance":0.2327},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.2578},{"site":"turborepo","path":"/docs/telemetry","distance":0.3129},{"site":"eve","path":"/docs/evals/running","distance":0.3184}],"related":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/telemetry","via":"neighbor"},{"site":"turborepo","path":"/docs/telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/telemetry","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/evals/running","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/observability/otel","via":"neighbor"},{"site":"eve","path":"/docs/evals/targets","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":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/custom"},{"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/connections/mcp"},{"site":"eve","path":"/docs/connections/openapi"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/guides/decide"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/observability/instrumentation"},{"site":"eve","path":"/docs/observability/otel"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/state"},{"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"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.2249},{"site":"eve","path":"/docs/agent-config","distance":0.2254},{"site":"eve","path":"/docs/tools","distance":0.2471},{"site":"eve","path":"/docs/extensions","distance":0.2513},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2594}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-typefully-social-media-agent","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","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":[{"site":"eve","path":"/docs/channels/overview"},{"site":"eve","path":"/docs/concepts/security-model"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/security-model","distance":0.2876},{"site":"eve","path":"/docs/guides/deployment/overview","distance":0.3054},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","distance":0.319},{"site":"eve","path":"/docs/getting-started","distance":0.3227},{"site":"eve","path":"/docs/channels/overview","distance":0.3367}],"related":[{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/channels/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/sandbox","title":"Sandbox","summary":"Configure the isolated filesystem and command environment used by an eve agent.","outbound":[{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/sandbox/default"},{"site":"eve","path":"/docs/sandbox/docker"},{"site":"eve","path":"/docs/sandbox/just-bash"},{"site":"eve","path":"/docs/sandbox/microsandbox"},{"site":"eve","path":"/docs/sandbox/vercel"},{"site":"eve","path":"/docs/subagents"},{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/eve"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/code-extension"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/deployment/vercel"},{"site":"eve","path":"/docs/guides/session-context"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/sandbox/docker"},{"site":"eve","path":"/docs/sandbox/just-bash"},{"site":"eve","path":"/docs/sandbox/microsandbox"},{"site":"eve","path":"/docs/sandbox/vercel"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/run-analysis"},{"site":"eve","path":"/docs/tutorial/ship-it"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/sandbox/vercel","distance":0.1627},{"site":"eve","path":"/docs/sandbox/default","distance":0.1915},{"site":"eve","path":"/docs/concepts/security-model","distance":0.1969},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2135},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2211}],"related":[{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"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/ecosystem","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":"eve","path":"/docs/guides/session-context","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"inbound"},{"site":"eve","path":"/docs/channels/custom","via":"inbound"}]},{"site":"eve","path":"/docs/sandbox/default","title":"Default Sandbox","summary":"Let eve select the sandbox provider for the current environment.","outbound":[{"site":"eve","path":"/docs/sandbox/docker"},{"site":"eve","path":"/docs/sandbox/just-bash"},{"site":"eve","path":"/docs/sandbox/microsandbox"},{"site":"eve","path":"/docs/sandbox/vercel"}],"inbound":[{"site":"eve","path":"/docs/sandbox"}],"requires":[{"site":"eve","path":"/docs/sandbox"}],"neighbors":[{"site":"eve","path":"/docs/sandbox/just-bash","distance":0.1836},{"site":"eve","path":"/docs/sandbox","distance":0.1915},{"site":"eve","path":"/docs/sandbox/docker","distance":0.1947},{"site":"eve","path":"/docs/sandbox/microsandbox","distance":0.1958},{"site":"eve","path":"/docs/sandbox/vercel","distance":0.2197}],"related":[{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"}]},{"site":"eve","path":"/docs/sandbox/docker","title":"Docker Sandbox","summary":"Create local persistent containers from an image or Dockerfile.","outbound":[{"site":"eve","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/sandbox/default"}],"requires":[{"site":"eve","path":"/docs/sandbox"}],"neighbors":[{"site":"eve","path":"/docs/sandbox/microsandbox","distance":0.1206},{"site":"eve","path":"/docs/sandbox/default","distance":0.1947},{"site":"eve","path":"/docs/sandbox/just-bash","distance":0.2169},{"site":"eve","path":"/docs/sandbox/vercel","distance":0.2483},{"site":"eve","path":"/docs/sandbox","distance":0.2489}],"related":[{"site":"eve","path":"/docs/sandbox/microsandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/default","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox","via":"neighbor"}]},{"site":"eve","path":"/docs/sandbox/just-bash","title":"just-bash Sandbox","summary":"Use a pure-JavaScript shell and virtual filesystem.","outbound":[{"site":"eve","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/sandbox/default"}],"requires":[{"site":"eve","path":"/docs/sandbox"}],"neighbors":[{"site":"eve","path":"/docs/sandbox/default","distance":0.1836},{"site":"eve","path":"/docs/sandbox/microsandbox","distance":0.2147},{"site":"eve","path":"/docs/sandbox/docker","distance":0.2169},{"site":"eve","path":"/docs/sandbox","distance":0.232},{"site":"eve","path":"/docs/sandbox/vercel","distance":0.2513}],"related":[{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox","via":"neighbor"},{"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/run-commands-in-sandbox","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/default","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/microsandbox","via":"neighbor"}]},{"site":"eve","path":"/docs/sandbox/microsandbox","title":"microsandbox","summary":"Create local lightweight VMs from an OCI image or Dockerfile.","outbound":[{"site":"eve","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/sandbox/default"}],"requires":[{"site":"eve","path":"/docs/sandbox"}],"neighbors":[{"site":"eve","path":"/docs/sandbox/docker","distance":0.1206},{"site":"eve","path":"/docs/sandbox/default","distance":0.1958},{"site":"eve","path":"/docs/sandbox/vercel","distance":0.2138},{"site":"eve","path":"/docs/sandbox/just-bash","distance":0.2147},{"site":"eve","path":"/docs/sandbox","distance":0.2321}],"related":[{"site":"eve","path":"/docs/sandbox/docker","via":"neighbor"},{"site":"vercel-docs","path":"/docs/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/sandbox/concepts","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"}]},{"site":"eve","path":"/docs/sandbox/vercel","title":"Vercel Sandbox","summary":"Create snapshot-backed persistent sandboxes on Vercel.","outbound":[{"site":"eve","path":"/docs/sandbox"}],"inbound":[{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/sandbox/default"}],"requires":[{"site":"eve","path":"/docs/sandbox"}],"neighbors":[{"site":"eve","path":"/docs/sandbox","distance":0.1627},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.2045},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.206},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","distance":0.2078},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.211}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-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/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"eve","path":"/docs/sandbox/microsandbox","via":"neighbor"}]},{"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":[{"site":"eve","path":"/docs/agent-config"},{"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/nextjs"},{"site":"eve","path":"/docs/patterns/dynamic-scheduling"},{"site":"eve","path":"/docs/reference/typescript-api"}],"inbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/evals/targets"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/frontend/nextjs"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/tools/workflows"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/patterns/dynamic-scheduling","distance":0.1466},{"site":"eve","path":"/docs/channels/overview","distance":0.2589},{"site":"eve","path":"/docs/channels/eve","distance":0.2758},{"site":"eve","path":"/docs/guides/client/overview","distance":0.278},{"site":"eve","path":"/docs/guides/deployment/self-hosting","distance":0.2788}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/self-hosting","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"}]},{"site":"eve","path":"/docs/skills","title":"Skills","summary":"Author load-on-demand procedures the model pulls into context with eve__skill.","outbound":[{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/evals/assertions"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/install-integrations"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"}],"inbound":[{"site":"eve","path":"/docs/code-extension"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/team-playbooks"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory"},{"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":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.1257},{"site":"eve","path":"/docs/concepts/context-control","distance":0.1664},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.1831},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.1831},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","distance":0.2069}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory","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-kb","path":"/kb/guide/marketing-team-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/skills","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/instructions","via":"neighbor"},{"site":"eve","path":"/docs/reference/agent-files","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"inbound"}]},{"site":"eve","path":"/docs/subagents","title":"Subagents","summary":"Delegate work to root-agent copies or declared specialists with their own tools and sandbox.","outbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/code-extension"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/guides/client/output-schema"},{"site":"eve","path":"/docs/guides/deployment/self-hosting"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/reference/agent-files"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"vercel-kb","path":"/kb/guide/eve-software-factory"},{"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/guides/remote-agents","distance":0.1863},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","distance":0.2128},{"site":"eve","path":"/docs/agent-config","distance":0.2218},{"site":"ai-sdk","path":"/docs/agents/subagents","distance":0.222},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.248}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-software-factory","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":"/docs/agents/subagents","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":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks-upgrade","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","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/connections"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/patterns/durable-cross-channel-notifications"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/context-control"},{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/concepts/security-model"},{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/evals/overview"},{"site":"eve","path":"/docs/extensions"},{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/guides/hooks"},{"site":"eve","path":"/docs/guides/self-modification"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tools/workflows"},{"site":"eve","path":"/docs/tutorial/guard-the-spend"},{"site":"eve","path":"/docs/tutorial/query-sample-data"},{"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":"eve","path":"/docs/tools/workflows","distance":0.1729},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.2086},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.2095},{"site":"eve","path":"/docs/tools/tasks","distance":0.2108},{"site":"eve","path":"/docs/guides/dynamic-capabilities","distance":0.2273}],"related":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-prompt-injection","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"inbound"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-6","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-ai/durable-agent","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/reference/typescript-api","via":"neighbor"},{"site":"eve","path":"/docs/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/overview","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"inbound"}]},{"site":"eve","path":"/docs/tools/tasks","title":"Tasks","summary":"Run agent and workflow tool calls as tasks that keep working while the conversation continues, and control how the model waits for, corrects, and cancels them.","outbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/tools/tasks-upgrade"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"eve","path":"/docs/concepts/built-in-tools"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming"},{"site":"eve","path":"/docs/guides/dev-tui"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/tasks-upgrade"},{"site":"eve","path":"/docs/tools/workflows"}],"requires":[{"site":"eve","path":"/docs/tools"}],"neighbors":[{"site":"eve","path":"/docs/tools/workflows","distance":0.1424},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.1444},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.1866},{"site":"eve","path":"/docs/tools/tasks-upgrade","distance":0.2},{"site":"eve","path":"/docs/tools","distance":0.2108}],"related":[{"site":"eve","path":"/docs/concepts/built-in-tools","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"}]},{"site":"eve","path":"/docs/tools/tasks-upgrade","title":"Upgrade to Tasks","summary":"Move workflow tools, agent calls, clients, hooks, and evals from background tasks to tasks.","outbound":[{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/workflows"}],"inbound":[{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/workflows"}],"requires":[{"site":"eve","path":"/docs/tools"}],"neighbors":[{"site":"eve","path":"/docs/tools/tasks","distance":0.2},{"site":"eve","path":"/docs/tools/workflows","distance":0.2292},{"site":"eve","path":"/docs/guides/remote-agents","distance":0.2341},{"site":"eve","path":"/docs/subagents","distance":0.2709},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.2716}],"related":[{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/subagents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"eve","path":"/docs/subagents","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","via":"neighbor"},{"site":"eve","path":"/docs/evals/tool-stubs","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"}]},{"site":"eve","path":"/docs/tools/workflows","title":"Workflows as Tools","summary":"Define durable workflow tools that wait for people, webhooks, or timers without holding compute.","outbound":[{"site":"eve","path":"/docs/channels/custom"},{"site":"eve","path":"/docs/concepts/project-structure"},{"site":"eve","path":"/docs/guides/client/streaming"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/schedules"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/tasks-upgrade"}],"inbound":[{"site":"eve","path":"/docs/agent-config"},{"site":"eve","path":"/docs/channels/mcp"},{"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/client/streaming"},{"site":"eve","path":"/docs/guides/decide"},{"site":"eve","path":"/docs/guides/remote-agents"},{"site":"eve","path":"/docs/human-in-the-loop"},{"site":"eve","path":"/docs/reference/typescript-api"},{"site":"eve","path":"/docs/subagents"},{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tools/tasks"},{"site":"eve","path":"/docs/tools/tasks-upgrade"}],"requires":[{"site":"eve","path":"/docs/tools"}],"neighbors":[{"site":"eve","path":"/docs/tools/tasks","distance":0.1424},{"site":"eve","path":"/docs/tools","distance":0.1729},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","distance":0.2081},{"site":"ai-sdk","path":"/docs/agents/workflow-agent","distance":0.2082},{"site":"eve","path":"/docs/concepts/built-in-tools","distance":0.2146}],"related":[{"site":"ai-sdk","path":"/docs/agents/workflow-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-a-slack-agent-with-durable-workflows","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/workflow-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durable-web-research-agent-with-workflow-sdk","via":"neighbor"},{"site":"eve","path":"/docs/concepts/sessions-runs-and-streaming","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/agent-config","via":"neighbor"},{"site":"eve","path":"/docs/channels/mcp","via":"inbound"}]},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse","title":"Connect a Warehouse (Optional)","summary":"Optional follow-up to the Build an Agent tutorial. Let each user connect their own warehouse over an OAuth MCP via Vercel Connect.","outbound":[{"site":"eve","path":"/docs/connections"},{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/tutorial/first-agent"},{"site":"eve","path":"/docs/tutorial/query-sample-data"},{"site":"eve","path":"/docs/tutorial/run-analysis"},{"site":"eve","path":"/docs/tutorial/ship-it"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents"},{"site":"vercel-docs","path":"/docs/connect"}],"inbound":[{"site":"eve","path":"/docs/tutorial/first-agent"},{"site":"eve","path":"/docs/tutorial/guard-the-spend"},{"site":"eve","path":"/docs/tutorial/query-sample-data"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","distance":0.2249},{"site":"eve","path":"/docs/connections/mcp","distance":0.2361},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","distance":0.2545},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2615},{"site":"vercel-docs","path":"/docs/connect/frameworks/ai-sdk-and-mcp","distance":0.2681}],"related":[{"site":"vercel-docs","path":"/docs/mcp/integrations/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/ai-sdk-and-mcp","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","via":"neighbor"},{"site":"eve","path":"/docs/connections/openapi","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"inbound"}]},{"site":"eve","path":"/docs/tutorial/first-agent","title":"Build your first agent","summary":"Scaffold the analytics assistant, give it an analyst persona, run it, and ask a question.","outbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/instructions"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/how-it-runs"}],"inbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives-eve-agent"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/getting-started","distance":0.1418},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.1639},{"site":"vercel-docs","path":"/docs/eve","distance":0.2255},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","distance":0.2454},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.2513}],"related":[{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives-eve-agent","via":"inbound"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/overview","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/guard-the-spend","title":"Guard the Spend","summary":"Part 7 of the Build an Agent tutorial. Gate expensive queries with cost-based approval. The agent pauses, asks, and resumes.","outbound":[{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"inbound":[{"site":"eve","path":"/docs/tutorial/run-analysis"},{"site":"eve","path":"/docs/tutorial/ship-it"},{"site":"eve","path":"/docs/tutorial/team-playbooks"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/query-sample-data","distance":0.2352},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.2651},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","distance":0.2812},{"site":"eve","path":"/docs/human-in-the-loop","distance":0.2973},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","distance":0.3086}],"related":[{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/human-in-the-loop","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/route-coding-agent-spend-through-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/terminal-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/loop-control","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/query-sample-data","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-approvals","via":"neighbor"},{"site":"eve","path":"/docs/guides/decide","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":[{"site":"eve","path":"/docs/concepts/execution-model-and-durability"},{"site":"eve","path":"/docs/tutorial/query-sample-data"}],"inbound":[{"site":"eve","path":"/docs/tutorial/first-agent"},{"site":"eve","path":"/docs/tutorial/remember-definitions"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/guard-the-spend","distance":0.2651},{"site":"eve","path":"/docs/getting-started","distance":0.2809},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.2831},{"site":"workflow","path":"/docs/ai","distance":0.2874},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2893}],"related":[{"site":"workflow","path":"/docs/ai","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/instructions","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 a local sample dataset and watch the tool loop.","outbound":[{"site":"eve","path":"/docs/tools"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/run-analysis"}],"inbound":[{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/how-it-runs"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/guard-the-spend","distance":0.2352},{"site":"eve","path":"/docs/tutorial/run-analysis","distance":0.2749},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.2912},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.3059},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3079}],"related":[{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","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":"/cookbook/rsc/call-tools-in-parallel","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/call-tools","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/guard-the-spend","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","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/tutorial/remember-definitions","title":"Remember Definitions","summary":"Part 5 of the Build an Agent tutorial. Use defineState to remember the team's metric glossary across turns.","outbound":[{"site":"eve","path":"/docs/concepts/state"},{"site":"eve","path":"/docs/tutorial/how-it-runs"},{"site":"eve","path":"/docs/tutorial/team-playbooks"}],"inbound":[{"site":"eve","path":"/docs/tutorial/run-analysis"},{"site":"eve","path":"/docs/tutorial/team-playbooks"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/concepts/state","distance":0.1738},{"site":"eve","path":"/docs/tutorial/how-it-runs","distance":0.3144},{"site":"eve","path":"/docs/memory","distance":0.3398},{"site":"eve","path":"/docs/tutorial/team-playbooks","distance":0.3449},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/generative-ui-state","distance":0.3587}],"related":[{"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":"eve","path":"/docs/memory","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/memory/custom-provider","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/run-analysis","title":"Run Analysis","summary":"Part 4 of the Build an Agent tutorial. Seed the sample database schema into the sandbox workspace, then compute and chart beyond SQL.","outbound":[{"site":"eve","path":"/docs/guides/client/messages"},{"site":"eve","path":"/docs/guides/client/overview"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/tutorial/guard-the-spend"},{"site":"eve","path":"/docs/tutorial/remember-definitions"}],"inbound":[{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/query-sample-data"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2549},{"site":"eve","path":"/docs/tutorial/query-sample-data","distance":0.2749},{"site":"eve","path":"/docs/sandbox","distance":0.2973},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.3063},{"site":"eve","path":"/docs/concepts/security-model","distance":0.3073}],"related":[{"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/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/anthropic-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/give-eve-agent-secure-access-to-aws-rds-database","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/query-sample-data","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/ship-it","title":"Ship It","summary":"Part 8 of the Build an Agent tutorial. Put a web dashboard on the agent with useEveAgent, replace placeholderAuth, and deploy to Vercel.","outbound":[{"site":"eve","path":"/docs/connections/mcp"},{"site":"eve","path":"/docs/guides/auth-and-route-protection"},{"site":"eve","path":"/docs/guides/deployment/overview"},{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/guides/frontend/overview"},{"site":"eve","path":"/docs/sandbox"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/guard-the-spend"},{"site":"eve","path":"/docs/tutorial/team-playbooks"}],"inbound":[{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"},{"site":"eve","path":"/docs/tutorial/guard-the-spend"},{"site":"eve","path":"/docs/tutorial/team-playbooks"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/guides/deployment/vercel","distance":0.1633},{"site":"eve","path":"/docs/tutorial/first-agent","distance":0.1639},{"site":"vercel-docs","path":"/docs/eve","distance":0.1788},{"site":"eve","path":"/docs/concepts/security-model","distance":0.1863},{"site":"eve","path":"/docs/guides/dev-tui","distance":0.1886}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-ai-agent-weather-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"eve","path":"/docs/concepts/security-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"}]},{"site":"eve","path":"/docs/tutorial/team-playbooks","title":"Team Playbooks","summary":"Part 6 of the Build an Agent tutorial. Load the caller's team playbook with a dynamic skill keyed on the principal.","outbound":[{"site":"eve","path":"/docs/guides/dynamic-capabilities"},{"site":"eve","path":"/docs/skills"},{"site":"eve","path":"/docs/tutorial/guard-the-spend"},{"site":"eve","path":"/docs/tutorial/remember-definitions"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"inbound":[{"site":"eve","path":"/docs/tutorial/remember-definitions"},{"site":"eve","path":"/docs/tutorial/ship-it"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/skills","distance":0.2263},{"site":"eve","path":"/docs/concepts/context-control","distance":0.2733},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2755},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2879},{"site":"eve","path":"/docs/instructions","distance":0.2986}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/how-it-runs","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/first-agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","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":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests"},{"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.1625},{"site":"flags-sdk","path":"/docs/api-reference/core/react","distance":0.1836},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1947},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2069},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2126}],"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/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","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/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":"flags-sdk","path":"/docs/api-reference/core/core","distance":0.1836},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.201},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2049},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2049},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2121}],"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/vercel-flags/quickstart","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/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.1282},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.1464},{"site":"flags-sdk","path":"/docs/api-reference/core/core","distance":0.1625},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1788},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.183}],"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":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.1282},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1416},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.1668},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1872},{"site":"flags-sdk","path":"/docs/api-reference/core/react","distance":0.2049}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","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/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","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":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.1259},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1305},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1446},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.1577},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1608}],"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-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks","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/api-reference/core/core","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/frameworks/next/evaluation-context","distance":0.2286},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.2312},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2629},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","distance":0.2726},{"site":"flags-sdk","path":"/docs/principles/data-locality","distance":0.2953}],"related":[{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-evaluates-flags-10x-faster","via":"neighbor"},{"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":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/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/principles/data-locality","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.2797},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.3331},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.3336},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.3336},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.3422}],"related":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","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/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-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.0041},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","distance":0.0567},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2244},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","distance":0.2286},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.2394}],"related":[{"site":"flags-sdk","path":"/docs/principles/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","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.1833},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.1967},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.2625},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.2704},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.2791}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","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/principles/server-side-vs-client-side","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":"swr","path":"/docs/suspense","distance":0.2512},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.2529},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.2537},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2656},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2667}],"related":[{"site":"swr","path":"/docs/suspense","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","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/api-reference/config/next-config-js/partialPrefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/precompute","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.0785},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.2374},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.2394},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.264},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2683}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/dashboard-pages","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/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","title":"Write end-to-end tests with flag overrides","summary":"Test Next.js application behavior with the Flags SDK and Playwright.","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/core/core"},{"site":"flags-sdk","path":"/docs/frameworks/next"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests"},{"site":"nextjs","path":"/docs/app/guides/environment-variables"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests","distance":0.037},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests","distance":0.1471},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests","distance":0.1793},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.2374},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.2779}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/playwright","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","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.0814},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","distance":0.1967},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.2096},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2271},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.2451}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","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/frameworks/next/guides/unit-tests","title":"Write unit tests with the Flags SDK","summary":"Test Next.js application behavior with the Flags SDK and Jest or Vitest.","outbound":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests","distance":0.0391},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","distance":0.1471},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests","distance":0.1667},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.2107},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2243}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","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","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/core/react","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/core/core","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":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags"}],"requires":[{"site":"flags-sdk","path":"/docs/frameworks/next"}],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.0971},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.1464},{"site":"flags-sdk","path":"/docs/principles/precompute","distance":0.1736},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2096},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2129}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","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":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1259},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.1416},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1423},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1446},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.1457}],"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":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","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/principles/evaluation-context","distance":0.0494},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.0567},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.24},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","distance":0.2726},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2756}],"related":[{"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/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","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.0785},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2661},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2723},{"site":"flags-sdk","path":"/docs/principles/server-side-vs-client-side","distance":0.2859},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.2997}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","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","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests","title":"Write end-to-end tests with flag overrides","summary":"Test SvelteKit application behavior with the Flags SDK and Playwright.","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/core/core"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","distance":0.037},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests","distance":0.1328},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests","distance":0.1667},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2343},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.2703}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"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/frameworks/next/guides/unit-tests","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","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/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.0814},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","distance":0.1598},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.2129},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2263},{"site":"flags-sdk","path":"/docs/principles/precompute","distance":0.2347}],"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/principles/precompute","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/unit-tests","title":"Write unit tests with the Flags SDK","summary":"Test SvelteKit application behavior with the Flags SDK and Jest or Vitest.","outbound":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests"}],"inbound":[{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests"}],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests","distance":0.0391},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/e2e-tests","distance":0.1328},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","distance":0.1793},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2153},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2387}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests","via":"neighbor"},{"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/frameworks/next/guides/e2e-tests","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/core/core","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","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.0971},{"site":"flags-sdk","path":"/docs/principles/precompute","distance":0.1396},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.1598},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.1668},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.1983}],"related":[{"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/keeping-pages-static","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/precompute","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","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.2076},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.228},{"site":"flags-sdk","path":"/docs/principles/evaluation-context","distance":0.2512},{"site":"flags-sdk","path":"/docs/frameworks/next/evaluation-context","distance":0.2641},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2696}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/core","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","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/frameworks/sveltekit","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.0041},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/evaluation-context","distance":0.0494},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.2281},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","distance":0.2312},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","distance":0.2374}],"related":[{"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/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/dashboard-pages","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","title":"Flags as Code","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1577},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.1676},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1704},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1839},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.195}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","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.1396},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","distance":0.1736},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2347},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.262},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","distance":0.2872}],"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":"swr","path":"/docs/prefetching","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","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","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.2076},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2269},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/marketing-pages","distance":0.2653},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","distance":0.268},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/dashboard-pages","distance":0.2859}],"related":[{"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/sveltekit/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/marketing-pages","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/guides/dashboard-pages","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.17},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.188},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1953},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2118},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.2148}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","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","distance":0.17},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.1813},{"site":"flags-sdk","path":"/docs/providers/global-config","distance":0.1979},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2009},{"site":"flags-sdk","path":"/docs/providers/growthbook","distance":0.2152}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","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/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/flagsmith","title":"Flagsmith","summary":"Evaluate Flagsmith flags with the Flags SDK.","outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.1676},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.1813},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.1856},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.1904},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1922}],"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/principles/flags-as-code","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/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/reflag","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/global-config","title":"Global Config","summary":null,"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-limits"},{"site":"vercel-docs","path":"/docs/global-config/global-config-sdk"},{"site":"vercel-docs","path":"/docs/global-config/using-global-config"}],"inbound":[],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.1747},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.1979},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2034},{"site":"flags-sdk","path":"/docs/providers","distance":0.2151},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2172}],"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/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/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/growthbook","title":"GrowthBook","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/growthbook","distance":0.1062},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.1983},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2152},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.2152},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2252}],"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/openfeature/growthbook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/statsig","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/global-config","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.0975},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2273},{"site":"flags-sdk","path":"/docs/providers/global-config","distance":0.2323},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2533},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","distance":0.2582}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/hypertune","via":"neighbor"},{"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-changelog","path":"/changelog/hypertune-joins-the-vercel-marketplace","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/providers/launchdarkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","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.1828},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.1856},{"site":"flags-sdk","path":"/docs/providers","distance":0.188},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.189},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1996}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/launchdarkly-is-now-available-on-the-vercel-marketplace","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/providers/vercel","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/global-config","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/openfeature","title":"OpenFeature","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/flagd","distance":0.1621},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.1757},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","distance":0.1768},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","distance":0.1823},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.186}],"related":[{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","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/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.1947},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2002},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2083},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","distance":0.2192},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2246}],"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/tggl","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/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.2075},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2185},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2192},{"site":"flags-sdk","path":"/docs/providers/openfeature/kameloon","distance":0.2255},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2327}],"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/abtasty","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","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.241},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2443},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2534},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2688},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2797}],"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/principles/flags-as-code","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.1789},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.2118},{"site":"flags-sdk","path":"/docs/providers/global-config","distance":0.2172},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2172},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2185}],"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/global-config","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/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.1661},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1922},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.2118},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.227},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2292}],"related":[{"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/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/kameloon","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","distance":0.186},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.1869},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.1897},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2002},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","distance":0.2075}],"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/flipt","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/go","distance":0.1603},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.1617},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1621},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.1661},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","distance":0.1789}],"related":[{"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/devcycle","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/configcat","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","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.1617},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2105},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2151},{"site":"flags-sdk","path":"/docs/providers/openfeature/split","distance":0.2221},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.227}],"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/split","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/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.1603},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1757},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.1897},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","distance":0.1997},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2071}],"related":[{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-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/providers/openfeature/tggl","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/growthbook","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.1062},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2131},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2133},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.2251},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","distance":0.2413}],"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/tggl","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","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.0975},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2307},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.238},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2381},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2444}],"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/flipt","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","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.1962},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2151},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","distance":0.2255},{"site":"flags-sdk","path":"/docs/providers/openfeature/devcycle","distance":0.2292},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2363}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/cloudbees","via":"neighbor"},{"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/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.1339},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2194},{"site":"ai-sdk","path":"/providers/observability/posthog","distance":0.2359},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2425},{"site":"flags-sdk","path":"/docs/providers/openfeature/tggl","distance":0.2463}],"related":[{"site":"ai-sdk","path":"/providers/observability/posthog","via":"neighbor"},{"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/tggl","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","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.1183},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2221},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","distance":0.2468},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2512},{"site":"flags-sdk","path":"/docs/providers/openfeature/featbit","distance":0.2557}],"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.1938},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","distance":0.1997},{"site":"flags-sdk","path":"/docs/providers/openfeature/abtasty","distance":0.2192},{"site":"flags-sdk","path":"/docs/providers/openfeature/flipt","distance":0.2284},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2385}],"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":[{"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.2117},{"site":"flags-sdk","path":"/docs/providers","distance":0.2249},{"site":"flags-sdk","path":"/docs/providers/split","distance":0.2322},{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.2522},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.2583}],"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/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/posthog","title":"PostHog","summary":"Use PostHog feature flags with the Flags SDK.","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.1339},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.1971},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.205},{"site":"flags-sdk","path":"/docs/api-reference/frameworks/next","distance":0.231},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2334}],"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/openfeature/posthog","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/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","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":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.2078},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2124},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2128},{"site":"flags-sdk","path":"/docs/providers/statsig","distance":0.2142},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","distance":0.2159}],"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/providers/flagsmith","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/principles/flags-as-code","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/split","title":"Split","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/split","distance":0.1183},{"site":"flags-sdk","path":"/docs/providers/optimizely","distance":0.2322},{"site":"flags-sdk","path":"/docs/providers","distance":0.2586},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2646},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.2806}],"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/providers/statsig","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/flagsmith","via":"neighbor"}]},{"site":"flags-sdk","path":"/docs/providers/statsig","title":"Statsig","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/launchdarkly","distance":0.1828},{"site":"flags-sdk","path":"/docs/providers/flagsmith","distance":0.1904},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1928},{"site":"flags-sdk","path":"/docs/providers/posthog","distance":0.1971},{"site":"flags-sdk","path":"/docs/providers/growthbook","distance":0.1983}],"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/flagsmith","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/posthog","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/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"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags"}],"inbound":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference"},{"site":"vercel-web","path":"/blog/flags-as-code-in-next-js"}],"requires":[{"site":"flags-sdk","path":"/docs/providers"}],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","distance":0.1228},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1258},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","distance":0.133},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","distance":0.1352},{"site":"flags-sdk","path":"/docs/frameworks/next","distance":0.1446}],"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","via":"neighbor"},{"site":"vercel-web","path":"/blog/flags-as-code-in-next-js","via":"inbound"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","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.0753},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.1622},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.1721},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.1772},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.1793}],"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/pages/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/cli","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.0133},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1073},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1086},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","distance":0.1362},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.1376}],"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/configuration","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.0033},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3316},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3435},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.3638},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.3689}],"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.0085},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1223},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1297},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1435},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1463}],"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.0043},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1332},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1362},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1657},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1682}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","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":"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.1346},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.2597},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.3028},{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","distance":0.3176},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.3202}],"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.124},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.1691},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","distance":0.2392},{"site":"vercel-docs","path":"/docs/partial-prerendering","distance":0.2712},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.2874}],"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":"vercel-web","path":"/blog/partial-prerendering-with-next-js-creating-a-new-default-rendering-model","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/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","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.2473},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.2486},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.2631},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2682}],"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/app/api-reference/config/next-config-js","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.2237},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.2388},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.2427},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2548}],"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/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","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.0113},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","distance":0.1771},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","distance":0.1832},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.2354},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2839}],"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.0076},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","distance":0.1749},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","distance":0.1771},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.2242},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2332}],"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.0604},{"site":"nextjs","path":"/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter","distance":0.1691},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.1723},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.226},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.2266}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","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.1994},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2109},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","distance":0.2487},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","distance":0.2615}],"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/guides/deploying-to-platforms","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.009},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1436},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1489},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.2361},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.2389}],"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.2138},{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app","distance":0.2214},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.2319},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2418}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/cli","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/create-v0-sdk-app","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/pages/getting-started/installation","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/api-reference/config/next-config-js/agentRules"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"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.0024},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1837},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2011},{"site":"nextjs","path":"/docs/app/api-reference/cli","distance":0.2214},{"site":"nextjs","path":"/docs/pages/api-reference/cli","distance":0.2319}],"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/config/next-config-js/agentUpgrade"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps"},{"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/building"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"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/agent-upgrade"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps"},{"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"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling"},{"site":"vercel-kb","path":"/kb/guide/access-nextjs-localhost-https-certificate-self-signed"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/cli"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/cli/next","distance":0.0056},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.2739},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2852},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.3012},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.309}],"related":[{"site":"vercel-kb","path":"/kb/guide/access-nextjs-localhost-https-certificate-self-signed","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/run","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","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/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.0585},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1793},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.2043},{"site":"nextjs","path":"/docs/architecture","distance":0.2309},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2331}],"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/api-reference/functions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/components/font","title":"Font Module","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"},{"site":"vercel-web","path":"/blog/optimizing-web-fonts"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/font","distance":0.0837},{"site":"nextjs","path":"/docs/app/getting-started/fonts","distance":0.1623},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","distance":0.1958},{"site":"vercel-web","path":"/blog/nextjs-next-font","distance":0.2843},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","distance":0.2956}],"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":"vercel-web","path":"/blog/optimizing-web-fonts","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","via":"neighbor"},{"site":"vercel-web","path":"/blog/nextjs-next-font","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","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.0791},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.14},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.1808},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.198},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2214}],"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-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments"},{"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"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel"},{"site":"vercel-web","path":"/blog/technical-audits"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/image","distance":0.0266},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.0595},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2087},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.216},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","distance":0.256}],"related":[{"site":"vercel-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments","via":"inbound"},{"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":"vercel-web","path":"/blog/technical-audits","via":"inbound"},{"site":"vercel-web","path":"/blog/images-on-the-web","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/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/skipTrailingSlashRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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.213},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router","distance":0.218},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2266},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.24},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2439}],"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/guides/single-page-applications","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","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/api-reference/file-conventions/layout"},{"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"},{"site":"vercel-web","path":"/blog/guide-to-fast-websites-with-next-js-tips-for-maximizing-server-speeds"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/components/script","distance":0.0068},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.1005},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.1218},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2569},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.257}],"related":[{"site":"vercel-kb","path":"/kb/guide/geolocation-script","via":"inbound"},{"site":"vercel-web","path":"/blog/guide-to-fast-websites-with-next-js-tips-for-maximizing-server-speeds","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/api-reference/file-conventions/page","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/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.0409},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.0895},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1759},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2013},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.202}],"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 Plugin","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.0069},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.229},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2416},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2466},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2523}],"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/agentFeedback"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade"},{"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/enablePrerenderSourceMaps"},{"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/exposeTestingApiInProductionBuild"},{"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/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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/turbopackGc"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR"},{"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/turbopackPluginRuntimeStrategy"},{"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.0316},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.1513},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1539},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1555},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1578}],"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/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions","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.0054},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1073},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.113},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","distance":0.1223},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.1241}],"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":"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/creating-an-adapter","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback","title":"agentFeedback","summary":"Enable a review flow for Next.js issue reports prepared by AI coding agents.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","distance":0.15},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade","distance":0.1912},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.248},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade","distance":0.2973},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3293}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/datadog","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-md-outperforms-skills-in-our-agent-evals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/mcp","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/app/api-reference/config/next-config-js/agentRules","title":"agentRules","summary":"Configure whether Next.js creates instructions for AI coding agents.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback","distance":0.15},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade","distance":0.2161},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2734},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.3061},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3069}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","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/httpAgentOptions","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade","title":"agentUpgrade","summary":"Configure coding agent upgrades and reminders.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"}],"inbound":[{"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/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"},{"site":"nextjs","path":"/docs/pages/api-reference/cli/next"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade","distance":0.1111},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback","distance":0.1912},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","distance":0.2161},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.259},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.2767}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","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"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068"}],"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.0034},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.2953},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2974},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","distance":0.3038},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3123}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"inbound"},{"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/crossOrigin","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/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","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.2437},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.246},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2641},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/distDir","distance":0.2844},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2901}],"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/pages/api-reference/config/next-config-js/distDir","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/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.0082},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.244},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3152},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3175},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","distance":0.3387}],"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/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/basePath","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.1775},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.1915},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.2396},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.2649},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2732}],"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/config/next-config-js/logging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","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/caching/cdn-cache"},{"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.0067},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3215},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3227},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.3252},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.3258}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"inbound"},{"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/app/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","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/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-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/adopting-partial-prefetching"},{"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/exposeTestingApiInProductionBuild"},{"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/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"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"},{"site":"vercel-kb","path":"/kb/guide/handle-order-ahead-traffic-spikes-on-vercel"}],"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.1662},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.1825},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.1837},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.1857},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1986}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/handle-order-ahead-traffic-spikes-on-vercel","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/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","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.2838},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2845},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.3074},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.3148},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.3221}],"related":[{"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":"vercel-kb","path":"/kb/guide/csp-nonces-with-cdn-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/cacheLife","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/guides/client-side-data-fetching/tanstack-query","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.1722},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.1837},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2106},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.2191},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","distance":0.2264}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"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/api-reference/config/next-config-js/incrementalCacheHandlerPath","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/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.2891},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache","distance":0.2945},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.2989},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.2994},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/onDemandEntries","distance":0.3038}],"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.0138},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3081},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.3103},{"site":"nextjs","path":"/docs/architecture","distance":0.3131},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3166}],"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/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","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/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.0109},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","distance":0.3038},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","distance":0.3093},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3153},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3338}],"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.2302},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","distance":0.2363},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.2746},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useLightningcss","distance":0.2799},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2911}],"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/config/next-config-js/generateBuildId"},{"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/api-reference/config/next-config-js/generateBuildId"},{"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.0045},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.2482},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.2502},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3169},{"site":"nextjs","path":"/docs/app/getting-started/deploying","distance":0.3428}],"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":"vercel-docs","path":"/docs/skew-protection","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/api-reference/config/next-config-js","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.2845},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2951},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.3014},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.3052}],"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"},{"site":"nextjs","path":"/docs/app/guides/building"}],"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.0125},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","distance":0.2944},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.3416},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3432},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.3489}],"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/pages/api-reference/file-conventions/src-folder","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","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/enablePrerenderSourceMaps","title":"enablePrerenderSourceMaps","summary":"Enable source maps for errors during prerendering in next build.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"}],"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/enablePrerenderSourceMaps","distance":0.0163},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","distance":0.2216},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","distance":0.223},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2756},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2805}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","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","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","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.1407},{"site":"nextjs","path":"/docs/app/guides/environment-variables","distance":0.1451},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","distance":0.2624},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.2628}],"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":"v0","path":"/docs/api/v1/guides/environment-variables","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/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"},{"site":"nextjs","path":"/docs/app/guides/building"}],"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.2281},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.3413},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.3421},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.343},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.3521}],"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/guides/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","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.0055},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.2217},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2376},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2805},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2963}],"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/exposeTestingApiInProductionBuild","title":"exposeTestingApiInProductionBuild","summary":"Expose the Instant Navigation testing API in production builds for end-to-end tests.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"}],"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/instant","distance":0.2397},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.2628},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2736},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2795},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.2887}],"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/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic","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":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"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/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.0135},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","distance":0.2502},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","distance":0.2569},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.3434},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","distance":0.3443}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-id-generator","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/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/pages/api-reference/config/next-config-js/distDir","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.0198},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3068},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","distance":0.3077},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/poweredByHeader","distance":0.3091},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.31}],"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.0144},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2257},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","distance":0.232},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2396},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","distance":0.2428}],"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/api-reference/functions/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","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.3556},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","distance":0.3587},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.3619},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3621}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","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/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.0129},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3195},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.3227},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3266},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","distance":0.3267}],"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/app/api-reference/config/next-config-js/agentRules","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/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.0068},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2005},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2102},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.2466},{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.256}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","via":"neighbor"},{"site":"vercel-web","path":"/blog/images-on-the-web","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":"Custom Next.js Cache Handler","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/functions/cacheTag","distance":0.1821},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1941},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.2086},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","distance":0.2216},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.2234}],"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/guides/caching-without-cache-components","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.2383},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2513},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2652},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.2752},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.2776}],"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.172},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.2557},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.2569},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.2604},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.2673}],"related":[{"site":"eve","path":"/docs/observability/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"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/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.0233},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2165},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2229},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2698},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2702}],"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/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","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.2153},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","distance":0.2164},{"site":"nextjs","path":"/docs/pages/guides/mdx","distance":0.2194},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/pageExtensions","distance":0.2896},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3235}],"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.0091},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.2924},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3021},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3038},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3134}],"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.2039},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2159},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2208},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2214}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js","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","via":"neighbor"},{"site":"nextjs","path":"/docs/app/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/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":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack"},{"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.0053},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2143},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2222},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2317},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2759}],"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/app/guides/local-development","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/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.3626},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","distance":0.3746},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3753},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3975},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.4}],"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/pages/guides/self-hosting","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.0555},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2582},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2701},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2827},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2839}],"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/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/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/building"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-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.0715},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1119},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.1409},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.1514},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2032}],"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/api-reference/functions/prefetch","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/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.0117},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3076},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.308},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","distance":0.3091},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.3145}],"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.1409},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.1461},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1551},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.2055},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2178}],"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/api-reference/functions/prefetch","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","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"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps"}],"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.0078},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps","distance":0.2216},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps","distance":0.2552},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.339},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3436}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/supported-browsers","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.0146},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3066},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.3103},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.3457},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.3515}],"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/config/next-config-js/skipProxyUrlNormalize","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.1942},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2028},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.2764},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.2777},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2807}],"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/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","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/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.2862},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.2989},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.3403},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/proxyClientMaxBodySize","distance":0.3429},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/proxyClientMaxBodySize","distance":0.3457}],"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/app/api-reference/config/next-config-js/proxyClientMaxBodySize","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.0112},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.2759},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2918},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.301},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.3031}],"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.1458},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.15},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","distance":0.1692}],"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.175},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1778},{"site":"vercel-docs","path":"/docs/routing/rewrites","distance":0.2017},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2668}],"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/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","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.1599},{"site":"nextjs","path":"/docs/pages/guides/sass","distance":0.1743},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2844},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2904},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useLightningcss","distance":0.3056}],"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/api-reference/config/next-config-js/allowedDevOrigins"},{"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.1659},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2232},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2443},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2683},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.2721}],"related":[{"site":"vercel-changelog","path":"/changelog/manage-next-js-server-actions-in-the-vercel-firewall","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc/use-actions","via":"neighbor"},{"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/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","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.2098},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.2416},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2919},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.2945},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.3088}],"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/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2192},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2193},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2214},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2237}],"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/skipProxyUrlNormalize","title":"skipProxyUrlNormalize","summary":"Let Proxy see the original request instead of Next.js's normalized version. Formerly skipMiddlewareUrlNormalize.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"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/pages/api-reference/file-conventions/proxy"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.0035},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1397},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1456},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.2151},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.2712}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","title":"skipTrailingSlashRedirect","summary":"Disable the automatic trailing slash redirects so you can handle trailing slashes yourself in Proxy.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"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/guides/static-exports"}],"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/pages/api-reference/file-conventions/proxy"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.0059},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.1397},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.1403},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","distance":0.1672},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","distance":0.1692}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","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.2281},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.3086},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.3136},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.3286},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.3303}],"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/directives/use-cache-private","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.2669},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2774},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2806},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","distance":0.2816},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.282}],"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"},{"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/app/api-reference/adapters/immutable-static-assets","distance":0.1346},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3369},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3519},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.3526},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","distance":0.3558}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/assetPrefix","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","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.3383},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.3431},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.3473},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.3552},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.3553}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/data-security","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/css-in-js","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/config/next-config-js/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect"}],"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.0064},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1672},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1704},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2893},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3055}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","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/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.0143},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2327},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2536},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2641},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2671}],"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/getting-started/installation","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/config/next-config-js/output"},{"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/output"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy"},{"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/config/next-config-js/output"},{"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.0065},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","distance":0.1744},{"site":"nextjs","path":"/docs/app/api-reference/turbopack","distance":0.1765},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2797},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2981}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/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/turbopackPluginRuntimeStrategy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","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.0174},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.2145},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2228},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","distance":0.2363},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2413}],"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/turbopackGc","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","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/turbopackLazyDynamicImportsSSR","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","title":"Turbopack FileSystem Caching","summary":"Learn how to enable and configure FileSystem Caching for Turbopack builds","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc"},{"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/turbopackGc"},{"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/turbopackGc","distance":0.1265},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","distance":0.1663},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.2547},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","distance":0.2579},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.2584}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching","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/turbopackLazyDynamicImportsSSR","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/turbopackLazyDynamicImports","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","title":"turbopackGc","summary":"Configure Turbopack to remove unreachable work from memory and the persistent cache.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"},{"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/turbopackMemoryEviction","distance":0.1197},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.1265},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.1937},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.1973},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.2021}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","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/turbopackRustReactCompiler","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/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/turbopackGc","distance":0.2197},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.2442},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig","distance":0.2517},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.2625},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2709}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-ignore","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","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/turbopackLazyDynamicImportsSSR","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","title":"turbopackLazyDynamicImports","summary":"Compile client-side dynamic imports when they are first requested during development.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR"},{"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/turbopackLazyDynamicImportsSSR","distance":0.0348},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.1937},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.1962},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.2001},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2296}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","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/turbopackPluginRuntimeStrategy","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/turbopackChunking","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","title":"turbopackLazyDynamicImportsSSR","summary":"Compile dynamic imports when server rendering first reaches them during development.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports"},{"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/turbopackLazyDynamicImports","distance":0.0348},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.1844},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.189},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.2021},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2157}],"related":[{"site":"nextjs","path":"/docs/app/guides/lazy-loading","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/turbopackGc","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","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/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/turbopackPluginRuntimeStrategy","distance":0.2337},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.2507},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2517},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.2576},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.2579}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","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/turbopackLazyDynamicImportsSSR","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackMemoryEviction","title":"Turbopack Memory Eviction","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"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.1197},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.1663},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.2315},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.234},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2352}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","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/turbopackPluginRuntimeStrategy","title":"turbopackPluginRuntimeStrategy","summary":"Choose how Turbopack runs Node.js evaluation for webpack loaders, Babel, and PostCSS.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/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/turbopackGc","distance":0.1973},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.2157},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackChunking","distance":0.2228},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopackChunking","distance":0.2245},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.2277}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","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/api-reference/config/next-config-js/turbopackRustReactCompiler","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/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.189},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.1962},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler","distance":0.2028},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.2145},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2277}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","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/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.2619},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.2637},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2825},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2968},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2979}],"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/app/guides/building"},{"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.0391},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1902},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","distance":0.1911},{"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.2323}],"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.0028},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2688},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2739},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.274},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2759}],"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.0018},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2367},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.244},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2582},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.261}],"related":[{"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/turbopackLazyDynamicImportsSSR","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/turbopackLazyDynamicImports","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/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.123},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.2875},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2994},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3013}],"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/api-reference/functions/fetch","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.0093},{"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.1951},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2063},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.262}],"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.0098},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.2421},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.254},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.2648},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.2655}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"vercel-web","path":"/blog/core-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/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":"Custom Webpack Config","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.0038},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2087},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2137},{"site":"nextjs","path":"/docs/pages/guides/babel","distance":0.2464},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","distance":0.2624}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","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.116},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.2322},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.2375},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","distance":0.262},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.266}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","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","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","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.2068},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","distance":0.2232},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2317},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2347},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2638}],"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/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","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/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/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/generate-static-params"},{"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/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"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/how-to-deploy-a-saleor-storefront-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce"},{"site":"vercel-web","path":"/blog/designing-and-building-the-vercel-ship-conference-platform"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.1168},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.1363},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.1529},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2074},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2138}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-saleor-storefront-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce","via":"inbound"},{"site":"vercel-web","path":"/blog/designing-and-building-the-vercel-ship-conference-platform","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/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/tanstack-query","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","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/getting-started/fetching-data"},{"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/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data"},{"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/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.1722},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.1857},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.1994},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.201},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.2146}],"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/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","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/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting"},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/directives"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.1363},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.1772},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.1973},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2135},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2215}],"related":[{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","via":"inbound"},{"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/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","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/guides/server-and-client-boundary","distance":0.1497},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.1536},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.1928},{"site":"nextjs","path":"/docs/app/api-reference/directives","distance":0.2068},{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.2251}],"related":[{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"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.1601},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1866},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.1928},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2188}],"related":[{"site":"ai-sdk","path":"/docs/troubleshooting/server-actions-in-client-components","via":"neighbor"},{"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/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/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.0055},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2977},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","distance":0.3074},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3122},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.3138}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/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.0524},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.15},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.1561},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1721},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.196}],"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/pages/guides","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.208},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.261},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2722},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2742},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2787}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","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 Route 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.0731},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1633},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","distance":0.1679},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1711},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1849}],"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/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/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","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.1072},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","distance":0.1524},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.1942},{"site":"nextjs","path":"/docs/pages/api-reference/functions/catchError","distance":0.2032},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2295}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-internationalise-error-pages-in-next-js-app-router","via":"inbound"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/catchError","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/file-conventions/forbidden","title":"forbidden.js","summary":"API reference for the forbidden.js special file.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading"},{"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.1164},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.1721},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.228},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2371},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2394}],"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/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/config/next-config-js/authInterrupts","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.1245},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.131},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1419},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","distance":0.2604}],"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":"eve","path":"/docs/observability/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","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"},{"site":"vercel-docs","path":"/docs/botid/get-started"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.1407},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.1419},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.1688},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","distance":0.172},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.1748}],"related":[{"site":"vercel-docs","path":"/docs/botid/get-started","via":"inbound"},{"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.203},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.3096},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.3168},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.3235},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.3252}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","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/pages-and-layouts","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/components/script"},{"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/file-conventions/route-segment-config/ensureStatic"},{"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.1908},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2277},{"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.2548},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","distance":0.2554}],"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/link","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/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/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/redirect"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized"},{"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/forbidden"},{"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/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/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/optimizing-the-static-shell"},{"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.1644},{"site":"nextjs","path":"/docs/app/guides/streaming","distance":0.1996},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.2111},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","distance":0.2187},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.2301}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/loading-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","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.2164},{"site":"nextjs","path":"/docs/app/guides/mdx","distance":0.2213},{"site":"nextjs","path":"/docs/pages/guides/mdx","distance":0.2233},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.2863},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.2949}],"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/community/contribution-guide","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","title":"Metadata Files API Reference","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"},{"site":"vercel-web","path":"/blog/platforms-starter-kit"}],"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.1582},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.192},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","distance":0.2277},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.2334}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/serving-static-files","via":"inbound"},{"site":"vercel-web","path":"/blog/platforms-starter-kit","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":[],"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.2065},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.2154},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.2277},{"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/api-reference/functions/generate-viewport","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","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":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.272},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.3029},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.3291},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.339},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.3414}],"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/file-conventions/metadata/app-icons","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","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-different-languages"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image"},{"site":"vercel-kb","path":"/kb/guide/using-tailwind"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.1767},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.1789},{"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.2094},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2161}],"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-different-languages","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-svg-image","via":"inbound"},{"site":"vercel-docs","path":"/docs/og-image-generation","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":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","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/page","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/agentic-commerce-readiness"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[],"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.3012},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","distance":0.3061},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.3062},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.3088}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/htmlLimitedBots","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules","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/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/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":[],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-sitemaps","distance":0.0918},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.2922},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.2934},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.3062},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","distance":0.3108}],"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/api-reference/file-conventions/metadata/robots","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","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.1058},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.1938},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2066},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.2128},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.2295}],"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/api-reference/file-conventions/error","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","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/file-conventions/route-segment-config/ensureStatic"},{"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"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1429},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.1711},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.1758},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.1759},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1788}],"related":[{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/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/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/directives/use-cache"},{"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/file-conventions/route-segment-config/ensureStatic"},{"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/optimizing-the-static-shell"},{"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.1809},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1915},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1995},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/intercepting-routes","distance":0.203},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/default","distance":0.208}],"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/pages/building-your-application/routing/api-routes","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/config/next-config-js/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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/config/next-config-js/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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/config/next-config-js/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce"},{"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.0083},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2038},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.2098},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2298},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.2439}],"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":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce","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":"nextjs","path":"/docs/pages/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/link","via":"inbound"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","title":"public Folder","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.2446},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2455},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2465},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2632}],"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/getting-started/project-structure","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"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-background-jobs-in-nextjs-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","distance":0.1492},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.1684},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.172},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2236},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.2301}],"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":"vercel-kb","path":"/kb/guide/how-to-run-background-jobs-in-nextjs-on-vercel","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/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","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.2227},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2624},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2769},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2788},{"site":"nextjs","path":"/docs/app/getting-started/project-structure","distance":0.2793}],"related":[{"site":"vercel-web","path":"/blog/next-js-layouts-rfc-in-5-minutes","via":"neighbor"},{"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/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/project-structure","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/ensureStatic"},{"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"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1944},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2003},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams","distance":0.2149},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.2198},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.2262}],"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":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","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/api-reference/functions/generate-static-params","via":"neighbor"},{"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/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.1918},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.2149},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.2168},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.2404},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.2613}],"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/ensureStatic","title":"ensureStatic","summary":"Require selected route output to remain static instead of rendering per request with the ensureStatic 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/directives/use-cache"},{"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/parallel-routes"},{"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/connection"},{"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/io"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/building"},{"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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications"}],"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/instant"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"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/keeping-pages-static","distance":0.1149},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.183},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant","distance":0.1954},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2101},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.2108}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/static-exports","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant","title":"instant","summary":"Configure instant navigation validation for a route segment.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exposeTestingApiInProductionBuild"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"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/config/next-config-js/exposeTestingApiInProductionBuild"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"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"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.1737},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic","distance":0.1954},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exposeTestingApiInProductionBuild","distance":0.2397},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.241},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2441}],"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/keeping-pages-static","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.2862},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3138},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.3279},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.3475},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.3613}],"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/file-conventions/route-segment-config/dynamicParams","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.2385},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.2962},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.3232},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.325},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.3397}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","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/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/internationalization","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","title":"prefetch","summary":"Configure how a route segment is prefetched during client navigation.","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/api-reference/functions/prefetch"},{"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/api-reference/functions/prefetch"},{"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.0715},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.0983},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.1219},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.1461},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1882}],"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/api-reference/file-conventions/route-segment-config/ensureStatic","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation","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.2486},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.2498},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.281},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2988},{"site":"nextjs","path":"/docs/pages/api-reference/edge","distance":0.3084}],"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/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/edge","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 Folder","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.1591},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2219},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","distance":0.2322},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.233}],"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/installation","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.2632},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.3018},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.3019},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.3021}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","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/file-conventions/loading"},{"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.0765},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.1721},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.176},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.2396},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2565}],"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/navigation"},{"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/prefetch"},{"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.1222},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1622},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1862},{"site":"nextjs","path":"/docs/pages/guides","distance":0.195},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.196}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions","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/api-reference/file-conventions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","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/fetching-data"},{"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/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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":"vercel-web","path":"/blog/designing-and-building-the-vercel-ship-conference-platform"},{"site":"workflow","path":"/docs/foundations/streaming"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2678},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2692},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2711},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.276},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.2796}],"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":"vercel-web","path":"/blog/designing-and-building-the-vercel-ship-conference-platform","via":"inbound"},{"site":"workflow","path":"/docs/foundations/streaming","via":"inbound"},{"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/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","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"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"}],"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/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce"},{"site":"vercel-web","path":"/blog/designing-and-building-the-vercel-ship-conference-platform"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.1168},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.1757},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.1772},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2065},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2488}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce","via":"inbound"},{"site":"vercel-web","path":"/blog/designing-and-building-the-vercel-ship-conference-platform","via":"inbound"},{"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/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","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"},{"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/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/caching-antipatterns"},{"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.1157},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","distance":0.1586},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","distance":0.1821},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.1956},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1978}],"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/caching-antipatterns","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/api-reference/config/next-config-js/incrementalCacheHandlerPath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","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/pages/api-reference/functions/catchError","distance":0.0288},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.1524},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.171},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.2674},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2788}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/catchError","via":"neighbor"},{"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/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/file-conventions/route-segment-config/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/optimizing-prefetching"},{"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.3293},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","distance":0.3393},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3425},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.3462}],"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/api-reference/functions/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation","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/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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/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"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.19},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.1914},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.2339},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2356},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2674}],"related":[{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","via":"inbound"},{"site":"vercel-web","path":"/blog/understanding-cookies","via":"neighbor"},{"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/app/api-reference/functions/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.1341},{"site":"nextjs","path":"/docs/app/guides/draft-mode","distance":0.1377},{"site":"vercel-docs","path":"/docs/draft-mode","distance":0.2286},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3171},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.3177}],"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/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/pages/api-reference/config/next-config-js","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.1647},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache","distance":0.2098},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.2299},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.2369},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.2392}],"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/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/api-reference/config/next-config-js/cacheComponents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","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/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/file-conventions/loading"},{"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/optimizing-the-static-shell"},{"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.0923},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.1164},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1417},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/unauthorized","distance":0.176},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.1775}],"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.1536},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.1767},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/app-icons","distance":0.2065},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.2334},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","distance":0.261}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-image","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/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/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/config/next-config-js/skipTrailingSlashRedirect"},{"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/loading"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"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/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/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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/agentic-commerce-readiness"},{"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.1924},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.2676},{"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.2746},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","distance":0.2814}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","via":"inbound"},{"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":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","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/file-conventions/route","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":[],"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"},{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","distance":0.0918},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","distance":0.3177},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.3334},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","distance":0.3387},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","distance":0.3416}],"related":[{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus","via":"inbound"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/sitemap","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/sitemap","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-generate-a-sitemap-for-my-nextjs-app-on-vercel","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/api-reference/functions/generate-static-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","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/file-conventions/route-segment-config/ensureStatic"},{"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/directives/use-cache"},{"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/file-conventions/route-segment-config/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/keeping-pages-static"},{"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/app/guides/public-static-pages"},{"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/ecommerce-ab-testing-core-web-vitals"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus"},{"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.0731},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","distance":0.1551},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.1762},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1788},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams","distance":0.1918}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/precompute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/ecommerce-ab-testing-core-web-vitals","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus","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/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/io","via":"inbound"}]},{"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/file-conventions/route-segment-config/ensureStatic"},{"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.195},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.209},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2106},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2274},{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.2301}],"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/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/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"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.226},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.232},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.2839},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.329},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3353}],"related":[{"site":"vercel-kb","path":"/kb/guide/geolocation-script","via":"inbound"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","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.2094},{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","distance":0.2445},{"site":"vercel-docs","path":"/docs/og-image-generation","distance":0.2493},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2737},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.274}],"related":[{"site":"vercel-docs","path":"/docs/og-image-generation/og-image-api","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-tailwind","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-kb","path":"/kb/guide/using-an-external-dynamic-image","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/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/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/file-conventions/route-segment-config/ensureStatic"},{"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/prefetch","distance":0.305},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.3165},{"site":"nextjs","path":"/docs/app/api-reference/functions/after","distance":0.3201},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation","distance":0.3285}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","via":"neighbor"},{"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/api-reference/functions/navigation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation","title":"navigation","summary":"Defer runtime work until the user navigates with the navigation function.","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/file-conventions/route-segment-config/ensureStatic"},{"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/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.1472},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1949},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1997},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.2012},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.2165}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","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.1663},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.1694},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.19},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2646}],"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/pages/api-reference/config/next-config-js/headers","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-changelog","path":"/changelog/cve-2025-57822"},{"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.009},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.1621},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.1663},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.2122},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2157}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"inbound"},{"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/api-reference/functions/cookies","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params","title":"next/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.1551},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1666},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.1679},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1992}],"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/api-reference/functions/generate-viewport","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","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/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.1058},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.1417},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.1811},{"site":"nextjs","path":"/docs/app/api-reference/functions/unauthorized","distance":0.1874},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2102}],"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/api-reference/file-conventions/forbidden","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/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.1157},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.2061},{"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.253},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.273}],"related":[{"site":"nextjs","path":"/docs/app/guides/redirecting","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/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","title":"prefetch","summary":"Defer runtime work until a per-link prefetch or navigation with the prefetch function.","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/file-conventions/route-segment-config/ensureStatic"},{"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/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch","distance":0.1219},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1396},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation","distance":0.1472},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","distance":0.1514},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1833}],"related":[{"site":"swr","path":"/docs/prefetching","via":"neighbor"},{"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/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/functions/fetch","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"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/permanentRedirect","distance":0.1157},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1327},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/redirects","distance":0.15},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1514},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.1887}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","via":"inbound"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","via":"inbound"},{"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/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","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/getting-started/mutating-data","distance":0.3306},{"site":"nextjs","path":"/docs/architecture/fast-refresh","distance":0.3346},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.3352},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.3464},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.3667}],"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/getting-started/revalidating","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"},{"site":"vercel-kb","path":"/kb/guide/update-sitecore-content-manually"},{"site":"vercel-web","path":"/blog/technical-audits"},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1291},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.1397},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.14},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.191},{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","distance":0.2365}],"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":"vercel-kb","path":"/kb/guide/update-sitecore-content-manually","via":"inbound"},{"site":"vercel-web","path":"/blog/technical-audits","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","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/guides/client-side-data-fetching/swr","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/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache"},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify"},{"site":"vercel-kb","path":"/kb/guide/caching-antipatterns"},{"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"},{"site":"vercel-web","path":"/blog/introducing-next-js-commerce-2-0"},{"site":"vercel-web","path":"/blog/platforms-starter-kit"},{"site":"vercel-web","path":"/blog/technical-audits"},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/updateTag","distance":0.1134},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.1397},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.151},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.169},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1978}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"inbound"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/caching-antipatterns","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":"vercel-web","path":"/blog/platforms-starter-kit","via":"inbound"},{"site":"vercel-web","path":"/blog/technical-audits","via":"inbound"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","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/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/loading"},{"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/optimizing-the-static-shell"},{"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.0765},{"site":"nextjs","path":"/docs/app/api-reference/functions/forbidden","distance":0.0923},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1874},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/authInterrupts","distance":0.1915},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/forbidden","distance":0.228}],"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/redirecting","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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/directives/use-cache-private","distance":0.1994},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","distance":0.2048},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.2092},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.2351},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath","distance":0.2377}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_noStore","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","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/incrementalCacheHandlerPath","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.2048},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.2851},{"site":"nextjs","path":"/docs/app/api-reference/functions/connection","distance":0.3293},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.3325},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/staleTimes","distance":0.3339}],"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/api-reference/directives/use-cache-private","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.2922},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.2963},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","distance":0.3134},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","distance":0.3244},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.3293}],"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/pages/api-reference/functions/catchError","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/caching-antipatterns"},{"site":"vercel-kb","path":"/kb/guide/handle-order-ahead-traffic-spikes-on-vercel"},{"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.1134},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1586},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1912},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.2365},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.2619}],"related":[{"site":"vercel-kb","path":"/kb/guide/caching-antipatterns","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/handle-order-ahead-traffic-spikes-on-vercel","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":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/unstable_cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","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/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.2255},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2384},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2392},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2501},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-selected-layout-segment","distance":0.2529}],"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/api-reference/functions/use-pathname","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.1276},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","distance":0.2997},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-pathname","distance":0.3157},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.317}],"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/config/next-config-js/prefetchInlining","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/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/functions"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"}],"requires":[{"site":"nextjs","path":"/docs/app/api-reference/functions"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.0728},{"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.204},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.212},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.2276}],"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.2241},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2319},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.237},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.2445},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2488}],"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.0298},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.0846},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.1001},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.264},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2655}],"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":"vercel-web","path":"/blog/core-web-vitals","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/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.1854},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1959},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.216},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2245},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-router","distance":0.2254}],"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/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/file-conventions/page","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/file-conventions/route-segment-config/ensureStatic"},{"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/optimizing-the-static-shell"},{"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.0549},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1758},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.1793},{"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.2241}],"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.0401},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1992},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.241},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","distance":0.2529},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2531}],"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/functions/use-link-status","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.0401},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2626},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2945},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2949},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.2953}],"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/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/use-link-status","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.0064},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.3292},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3431},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.3512},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.3512}],"related":[{"site":"nextjs","path":"/docs/pages/api-reference/functions/userAgent","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"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/functions/next-request","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/turbopackGc"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy"},{"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-changelog","path":"/changelog/turbo-build-machines"},{"site":"vercel-docs","path":"/docs/microfrontends"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","distance":0.0054},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.1757},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.1765},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.2765},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.278}],"related":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"inbound"},{"site":"vercel-docs","path":"/docs/microfrontends","via":"inbound"},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","via":"neighbor"},{"site":"vercel-web","path":"/blog/turbopack-moving-homes","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/api-reference/config/next-config-js/turbopackChunking","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/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.1263},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1444},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.165},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1747},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1772}],"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/api-reference/config","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/cli/create-next-app"},{"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/optimizing-the-static-shell"},{"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/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/revalidatePath"},{"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/optimizing-the-static-shell"},{"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/agentic-commerce-readiness"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute"},{"site":"vercel-kb","path":"/kb/guide/salesforce-pwa-kit-vs-storefront-next-vs-nextjs"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/glossary","distance":0.1579},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1598},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.1691},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.172},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","distance":0.1853}],"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/agentic-commerce-readiness","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/optimize-active-cpu-on-fluid-compute","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/salesforce-pwa-kit-vs-storefront-next-vs-nextjs","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","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/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.0321},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","distance":0.1518},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.1573},{"site":"nextjs","path":"/docs/app/guides/css-in-js","distance":0.1652},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.175}],"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/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.1323},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2024},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2084},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2132}],"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/getting-started/installation","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.1072},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.1591},{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","distance":0.171},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.1811},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","distance":0.1938}],"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/pages/api-reference/functions/catchError","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/directives/use-cache-private"},{"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/api-reference/directives/use-cache-private"},{"site":"nextjs","path":"/docs/app/api-reference/functions/after"},{"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/optimizing-the-static-shell"},{"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.1638},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2074},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.2099},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.2135},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2366}],"related":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","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.0487},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","distance":0.1605},{"site":"nextjs","path":"/docs/app/api-reference/components/font","distance":0.1623},{"site":"vercel-web","path":"/blog/nextjs-next-font","distance":0.2119},{"site":"vercel-web","path":"/blog/optimizing-web-fonts","distance":0.2317}],"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":"vercel-web","path":"/blog/nextjs-next-font","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-web-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/guides/internationalization","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.0193},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.1916},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","distance":0.2005},{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.2087},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.216}],"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/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/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/app/guides/upgrading/agent-upgrade"},{"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.0211},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1654},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1665},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","distance":0.1765},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1772}],"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/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/api-reference/cli/create-next-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","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"},{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.0914},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1316},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1428},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1429},{"site":"nextjs","path":"/docs/app/guides/internationalization","distance":0.1617}],"related":[{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js","via":"inbound"},{"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/optimizing-prefetching"},{"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/guides/prefetching","distance":0.1076},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1316},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1417},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1545},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.1584}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","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"},{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-image-metadata","distance":0.1536},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.1582},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.1789},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-metadata","distance":0.1924},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-viewport","distance":0.195}],"related":[{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness","via":"inbound"},{"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/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","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.0584},{"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.198},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.2051}],"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/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/getting-started/project-structure","title":"Project structure and organization","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.2137},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2654},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-groups","distance":0.2793},{"site":"vercel-web","path":"/blog/next-js-layouts-rfc-in-5-minutes","distance":0.2938},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.297}],"related":[{"site":"vercel-web","path":"/blog/next-js-layouts-rfc-in-5-minutes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","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/guides/migrating/app-router-migration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/proxy","title":"Proxy","summary":"Use Next.js Proxy to rewrite, redirect, modify headers, or respond directly before a request completes.","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":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","distance":0.1833},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.1921},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.2098},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.2149},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.2151}],"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/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","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/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation"},{"site":"vercel-kb","path":"/kb/guide/salesforce-pwa-kit-vs-storefront-next-vs-nextjs"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.094},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1157},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.1291},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1308},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.151}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-move-to-on-demand-revalidation","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/salesforce-pwa-kit-vs-storefront-next-vs-nextjs","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/authentication-with-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","title":"Route Handlers","summary":"Create custom request handlers with Next.js Route Handlers using the Web Request and Response APIs.","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-docs","path":"/docs/functions/configuring-functions/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents"},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","distance":0.1492},{"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.2113},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.214},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2252}],"related":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"inbound"},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","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/pages/guides/forms","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/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/self-hosting"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-content-sdk"},{"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.1252},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.1536},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.205},{"site":"vercel-web","path":"/blog/understanding-react-server-components","distance":0.2253},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2272}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-content-sdk","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-writes","via":"inbound"},{"site":"vercel-web","path":"/blog/understanding-react-server-components","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-rsc-payload-size","via":"neighbor"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","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/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/appDir","via":"inbound"}]},{"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/agent-upgrade"},{"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.1168},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1781},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","distance":0.2256},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2268},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.2295}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"vercel-web","path":"/blog/next-canary","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/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/glossary","title":"Next.js 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/file-conventions/route-segment-config/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/ensureStatic"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-root-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/keeping-pages-static"},{"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/caching","distance":0.1579},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.1787},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1911},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.2008},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2034}],"related":[{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"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/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":[],"inbound":[],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides","distance":0.129},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1987},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2154},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2189},{"site":"nextjs","path":"/docs/architecture","distance":0.2368}],"related":[{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","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/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/glossary"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"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/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/prefetch"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/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/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/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"},{"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.1342},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1736},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","distance":0.1842},{"site":"nextjs","path":"/docs/app/guides/building","distance":0.2061},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.2209}],"related":[{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/ai-agents","title":"How Next.js supports AI coding agents","summary":"Learn how Next.js helps AI coding agents use current framework guidance, inspect applications, verify changes, and report issues.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/create-next-app"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade"},{"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"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"},{"site":"vercel-web","path":"/blog/agents-md-outperforms-skills-in-our-agent-evals"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentFeedback"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentRules"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/mcp"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"vercel-web","path":"/blog/agents-md-outperforms-skills-in-our-agent-evals","distance":0.1805},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.1905},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.1994},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2096},{"site":"eve","path":"/docs/tutorial/ship-it","distance":0.2099}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"inbound"},{"site":"ai-sdk","path":"/docs/getting-started/coding-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/nodejs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"inbound"}]},{"site":"nextjs","path":"/docs/app/guides/analytics","title":"How to add analytics to your Next.js application","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":"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.0393},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.0817},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.0846},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.2308},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2395}],"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-docs","path":"/docs/speed-insights/quickstart","via":"neighbor"},{"site":"vercel-shop","path":"/docs/skills/enable-analytics","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":"How to implement authentication in Next.js","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/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.2249},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2436},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.2536},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","distance":0.2799},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2866}],"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/sign-in-with-vercel/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/get-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/authentication","via":"neighbor"},{"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/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/components/form","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","title":"How to implement 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/authentication"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/pages/guides/authentication"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/authentication","distance":0.167},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents","distance":0.1825},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1993},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.2015},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2137}],"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/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","title":"How to use Next.js as a backend for your 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/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.1684},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/proxy","distance":0.2023},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.2034},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy","distance":0.2038},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2048}],"related":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","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/app/getting-started/route-handlers","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/building","title":"Building your application","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/distDir"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/expireTime"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript"},{"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/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"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/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/migrating-to-cache-components"},{"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/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"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.205},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2061},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.2112},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","distance":0.2231},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.2311}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","title":"Caching and Revalidating (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/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/keeping-pages-static"},{"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"},{"site":"vercel-kb","path":"/kb/guide/update-sitecore-content-manually"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/revalidating","distance":0.1308},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1605},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","distance":0.1623},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.1647},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.167}],"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":"vercel-kb","path":"/kb/guide/update-sitecore-content-manually","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/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","title":"Using a CDN with Next.js","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/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.1536},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.1752},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.1977},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2033},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2069}],"related":[{"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/incremental-static-regeneration-cache-components","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/ci-build-caching","title":"How to configure Continuous Integration (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"}],"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/turbopackFileSystemCache","distance":0.2731},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2733},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2741},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2788}],"related":[{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","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/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/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.1345},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1507},{"site":"swr","path":"/docs/with-nextjs","distance":0.1697},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.1834},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2073}],"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":"swr","path":"/docs/suspense","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":"How to fetch client-side data with 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.1096},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1345},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1588},{"site":"swr","path":"/blog/swr-v2","distance":0.1651},{"site":"swr","path":"/docs/getting-started","distance":0.1844}],"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":"/blog/swr-v1","via":"neighbor"},{"site":"swr","path":"/docs/api","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":"How to fetch client-side data with 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","distance":0.2591},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.2618},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.2752},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2761},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2773}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","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/content-security-policy","title":"How to set a Content Security Policy (CSP) for your Next.js application","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/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.0211},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2172},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.2428},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2451},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.261}],"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/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/css-in-js","title":"How to use CSS-in-JS libraries","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/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.1353},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1652},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1898},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","distance":0.2087},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.2251}],"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/api-reference/directives/use-client","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/custom-server","title":"How to set up a custom server in Next.js","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/pages/getting-started/deploying"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/custom-server","distance":0.0286},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2554},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2652},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2664},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2815}],"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":"How to think about data security in Next.js","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/environment-variables"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"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/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.1925},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2175},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.2307},{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.2502},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.2536}],"related":[{"site":"vercel-kb","path":"/kb/guide/sending-emails-from-an-application-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/understanding-react-server-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"},{"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/authentication-with-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/debugging","title":"How to use debugging tools with Next.js","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":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/debugging","distance":0.0035},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2526},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2534},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2609},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2653}],"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/guides/local-development","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/guides/deploying-to-platforms","title":"Deploying Next.js to different 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/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/pages/getting-started/deploying","distance":0.1323},{"site":"nextjs","path":"/docs/app/getting-started/deploying","distance":0.1323},{"site":"nextjs","path":"/docs/app/guides/ppr-platform-guide","distance":0.1784},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1785}],"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":"How to preview content with Draft Mode in Next.js","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/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.1377},{"site":"vercel-docs","path":"/docs/draft-mode","distance":0.181},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.1874},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.274}],"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/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/environment-variables","title":"How to use environment variables in Next.js","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":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests"},{"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/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.1451},{"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.238},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2448}],"related":[{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/environment-variables","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/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/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/forms","title":"How to create forms with Server Actions","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/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.14},{"site":"nextjs","path":"/docs/app/guides/server-actions","distance":0.1695},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.1765},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.1866}],"related":[{"site":"vercel-docs","path":"/docs/botid/form-submissions","via":"inbound"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"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 in Next.js","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/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.094},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","distance":0.14},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1623},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidateTag","distance":0.169},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","distance":0.1956}],"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":"How to implement Incremental Static Regeneration (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/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"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-content-sdk"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","distance":0.0217},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.1606},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1721},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1894},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.1923}],"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-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-content-sdk","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-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","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":"Incremental Static Regeneration 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/file-conventions/route-segment-config/ensureStatic"},{"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/navigation"},{"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/optimizing-prefetching"},{"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/file-conventions/route-segment-config/ensureStatic"},{"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/building"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.0863},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.1222},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1545},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.1598},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1605}],"related":[{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","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/pages/guides/incremental-static-regeneration","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","title":"Ensuring instant navigations","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/config/next-config-js/exposeTestingApiInProductionBuild"},{"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/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exposeTestingApiInProductionBuild"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"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/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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1399},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/instant","distance":0.1737},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2209},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","distance":0.2388},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.2546}],"related":[{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/instrumentation","title":"How to set up 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/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.0105},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.1245},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/instrumentation","distance":0.1499},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation-client","distance":0.1748},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.2314}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/observability/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/app/api-reference/config/next-config-js/instrumentationClientInject","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/interactive-apps","title":"Building 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/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/single-page-applications","distance":0.2279},{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","distance":0.3005},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","distance":0.3034},{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","distance":0.3106},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","distance":0.3242}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-human-in-the-loop-agents-for-community-moderation-with-durable-workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/real-time-board-nextjs-fastapi","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","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/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.1277},{"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.1617},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1775},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2074}],"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/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/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/json-ld","title":"How to implement JSON-LD in your Next.js application","summary":"Learn how to add JSON-LD to your Next.js application to describe your content to search engines and AI.","outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides","distance":0.2637},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.2782},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2802},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.282},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.2859}],"related":[{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus","via":"inbound"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","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/keeping-pages-static","title":"Keeping pages static","summary":"Keep selected route output static as your app changes.","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/directives/use-cache"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/glossary"},{"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-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/optimizing-prefetching"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.0863},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.1119},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/ensureStatic","distance":0.1149},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1584},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1652}],"related":[{"site":"vercel-web","path":"/blog/nextjs-server-side-rendering-vs-static-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/caching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","title":"How to lazy load Client Components and libraries","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/config/next-config-js/turbopackLazyDynamicImports"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"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.0717},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1608},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.1844},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1881},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.1994}],"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/turbopackLazyDynamicImportsSSR","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/local-development","title":"How to optimize your local 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"},{"site":"nextjs","path":"/docs/architecture/fast-refresh"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/deploying"},{"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.1726},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.1742},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.175},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.188},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.2021}],"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/pages/api-reference/config/next-config-js/output","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/mcp","title":"Connecting coding agents to the Next.js MCP server","summary":"Learn how to give coding agents access to your running Next.js app through the built-in MCP endpoint.","outbound":[{"site":"nextjs","path":"/docs/app/guides/ai-agents"}],"inbound":[{"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":"ai-sdk","path":"/cookbook/next/mcp-tools","distance":0.2225},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2352},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2462},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.2472},{"site":"ai-sdk","path":"/cookbook/node/mcp-tools","distance":0.2487}],"related":[{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","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":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","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","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/mdx","title":"How to use markdown and MDX in Next.js","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"}],"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.2153},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/mdx-components","distance":0.2213},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2247}],"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":"How to optimize 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/api-reference/config/next-config-js/enablePrerenderSourceMaps"},{"site":"nextjs","path":"/docs/app/guides/local-development"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1942},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.198},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2067},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2095},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.2118}],"related":[{"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/package-bundling","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/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":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/migrating","distance":0.0082},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1976},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2034},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2062},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.2086}],"related":[{"site":"nextjs","path":"/docs/pages/guides/migrating","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/pages/guides/upgrading","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/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/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/ensureStatic"},{"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/ai-agents"},{"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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/mcp"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"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/authentication-with-cache-components"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/interactive-apps"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"},{"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"},{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.1529},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife","distance":0.1757},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.1822},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-remote","distance":0.1973},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2118}],"related":[{"site":"vercel-kb","path":"/kb/guide/ssr-vs-ssg-vs-isr-vs-csr-for-ecommerce","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","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/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/authentication-with-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","title":"How to migrate from Pages to the 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/optimizing-the-static-shell"},{"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.0059},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.2031},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.212},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2309},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","distance":0.2353}],"related":[{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","via":"neighbor"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","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/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","title":"How to migrate from Create React App to Next.js","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"},{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo"}],"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.1866},{"site":"nextjs","path":"/docs/app/guides/migrating/from-vite","distance":0.1911},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.2031},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.2038}],"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/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/migrating/from-vite","title":"How to migrate from Vite to Next.js","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"},{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo"}],"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.1911},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.1931},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.2412},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.2447}],"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":"How to build multi-tenant apps in Next.js","summary":"Learn how to build multi-tenant apps with the App Router.","outbound":[],"inbound":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2159},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2595},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2607},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2737},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2754}],"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":"How to build micro-frontends using multi-zones and Next.js","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":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/multi-zones","distance":0.0234},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2474},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2687},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2752},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2802}],"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":"Handling connectivity drops","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/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.123},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-offline","distance":0.1276},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2113},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2428},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.2536}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","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/guides/caching-without-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","title":"How to set up instrumentation with 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":"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.1822},{"site":"eve","path":"/docs/observability/otel","distance":0.222},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.2246},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.2314}],"related":[{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","via":"neighbor"},{"site":"eve","path":"/docs/observability/otel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/signoz","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/laminar","via":"neighbor"},{"site":"ai-sdk","path":"/providers/observability/arize-ax","via":"neighbor"},{"site":"eve","path":"/docs/observability/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/guides/optimizing-prefetching","title":"Optimizing prefetching","summary":"Resolve per-link URL data, include session data in the App Shell, or defer expensive work to a later navigation stage.","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/ensureStatic"},{"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/connection"},{"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/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch"},{"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/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static"},{"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/api-reference/file-conventions/route-segment-config/ensureStatic"},{"site":"nextjs","path":"/docs/app/api-reference/functions/navigation"},{"site":"nextjs","path":"/docs/app/api-reference/functions/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/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/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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/offline-support"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell"},{"site":"nextjs","path":"/docs/app/guides/prefetching"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.1342},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.1399},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1659},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.172},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.1833}],"related":[{"site":"vercel-kb","path":"/kb/guide/optimizing-hard-navigations","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","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/authentication-with-cache-components","via":"inbound"}]},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","title":"Optimizing the static shell","summary":"Learn how to use Cache Components to keep layouts, navigation, and useful loading states available while request-time content streams.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheComponents"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exposeTestingApiInProductionBuild"},{"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/parallel-routes"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheLife"},{"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/use-params"},{"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/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-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/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/streaming"}],"inbound":[{"site":"nextjs","path":"/docs/app/getting-started/caching"},{"site":"nextjs","path":"/docs/app/guides/instant-navigation"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"},{"site":"nextjs","path":"/docs/app/guides/streaming"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/optimizing-prefetching","distance":0.1838},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.1842},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.1853},{"site":"nextjs","path":"/docs/app/guides/building","distance":0.2231},{"site":"nextjs","path":"/docs/app/guides/instant-navigation","distance":0.2388}],"related":[{"site":"nextjs","path":"/docs/app/guides/building","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/glossary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/layout","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/package-bundling","title":"Optimizing 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/cli/next"},{"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/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.0096},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1559},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.1726},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.1895},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.2153}],"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-web","path":"/blog/how-we-optimized-package-imports-in-next-js","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/app/guides/memory-usage","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/ppr-platform-guide","title":"Implementing Partial Prerendering on your platform","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/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.124},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1268},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","distance":0.1723},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.1784},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2363}],"related":[{"site":"vercel-docs","path":"/docs/partial-prerendering/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/partial-prerendering","via":"neighbor"},{"site":"vercel-web","path":"/blog/partial-prerendering-with-next-js-creating-a-new-default-rendering-model","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/adapters/runtime-integration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","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/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/how-to-optimize-next.js-sitecore-content-sdk"},{"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/api-reference/file-conventions/route-segment-config/prefetch","distance":0.0983},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1076},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/partialPrefetching","distance":0.1119},{"site":"nextjs","path":"/docs/app/api-reference/functions/prefetch","distance":0.1396},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","distance":0.1551}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-content-sdk","via":"inbound"},{"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/functions/prefetch","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/prefetchInlining","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","title":"How Next.js preserves UI state with Activity","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/migrating-to-cache-components"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/single-page-applications","distance":0.2722},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","distance":0.2773},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.2783},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2921},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2949}],"related":[{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/single-page-applications","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/api-reference/directives/use-cache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","title":"How to prevent flash before hydration","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/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.2559},{"site":"nextjs","path":"/docs/app/getting-started/fetching-data","distance":0.2572},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2688},{"site":"nextjs","path":"/docs/app/guides/preserving-ui-state","distance":0.2773},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.2775}],"related":[{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","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/api-reference/directives/use-cache","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/guides/production-checklist","title":"How to optimize your Next.js application for 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/package-bundling"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.025},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.1332},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1555},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.1559},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1602}],"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":"How to build a Progressive Web Application (PWA) with Next.js","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/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.2947},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.2958},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.3344},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3528},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.3604}],"related":[{"site":"vercel-kb","path":"/kb/guide/access-nextjs-localhost-https-certificate-self-signed","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/data-security","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/guides/public-static-pages","title":"Building 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/api-reference/functions/generate-static-params"},{"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/keeping-pages-static"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration"}],"inbound":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.1119},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1222},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1594},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1715},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1963}],"related":[{"site":"vercel-web","path":"/blog/nextjs-server-side-rendering-vs-static-generation","via":"neighbor"},{"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","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/redirecting","title":"How to handle redirects in Next.js","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/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.1327},{"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.1963}],"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":"Next.js 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/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.1268},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.1536},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.1715},{"site":"nextjs","path":"/docs/app/guides/self-hosting","distance":0.1745}],"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/app/guides/keeping-pages-static","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/sass","title":"How to use 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/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.0111},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","distance":0.1599},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2034},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2143},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.232}],"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/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/app/guides/scripts","title":"How to load and optimize 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/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.0277},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","distance":0.1004},{"site":"nextjs","path":"/docs/app/api-reference/components/script","distance":0.1005},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.2178},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.2253}],"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":"How to self-host your Next.js application","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/config/next-config-js/supportsImmutableAssets"},{"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/generateBuildId"},{"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/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/config/next-config-js/generateBuildId"},{"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.0617},{"site":"nextjs","path":"/docs/app/guides/rendering-philosophy","distance":0.1745},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.1752},{"site":"nextjs","path":"/docs/app/glossary","distance":0.1787},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2078}],"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/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/server-actions","title":"Server Actions and Mutations","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/authentication"},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend"},{"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.0584},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-server","distance":0.1601},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","distance":0.1659},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.1695},{"site":"nextjs","path":"/docs/app/guides/data-security","distance":0.1925}],"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/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","title":"The 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"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/server-and-client-components","distance":0.1252},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-client","distance":0.1497},{"site":"vercel-web","path":"/blog/understanding-react-server-components","distance":0.1826},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1845},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2034}],"related":[{"site":"vercel-web","path":"/blog/understanding-react-server-components","via":"neighbor"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","via":"neighbor"},{"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/guides/client-side-data-fetching","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/guides/single-page-applications","title":"How to build single-page applications with Next.js","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/api-reference/file-conventions/route-segment-config/ensureStatic"},{"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/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/fetching-data","distance":0.2099},{"site":"nextjs","path":"/docs/app/guides/interactive-apps","distance":0.2279},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.24},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2468},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2513}],"related":[{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/preventing-flash-before-hydration","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/static-exports","title":"How to create a static export of your Next.js application","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/skipTrailingSlashRedirect"},{"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/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/skipTrailingSlashRedirect"},{"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.0164},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1795},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.1868},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1936},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1951}],"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/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","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/optimizing-the-static-shell"},{"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/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/optimizing-the-static-shell"},{"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.1638},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","distance":0.1996},{"site":"nextjs","path":"/docs/app/guides/optimizing-the-static-shell","distance":0.2395},{"site":"nextjs","path":"/docs/app/getting-started/caching","distance":0.2569},{"site":"nextjs","path":"/docs/app/glossary","distance":0.2582}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/building","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/optimizing-prefetching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","title":"How to install Tailwind CSS v3 in your Next.js application","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/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/pages/getting-started/css","distance":0.1402},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1573},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2149},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2711}],"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/app/guides/css-in-js","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/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.0288},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1413},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.1582},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1627},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.1708}],"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":"How to set up Cypress with Next.js","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.0131},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.192},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2012},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.2279},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.2331}],"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/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/jest","title":"How to set up Jest with Next.js","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.1382},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1413},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1442},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.1474}],"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/pages/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/playwright","title":"How to set up Playwright with Next.js","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.1987},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2025},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","distance":0.2539},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.2603}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing/playwright","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/playwright","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","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/jest","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","title":"How to set up Vitest with Next.js","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.0177},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1474},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1545},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1653},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1708}],"related":[{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"},{"site":"workflow","path":"/docs/testing/server-based","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/jest","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/unit-tests","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","title":"How to optimize 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":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.0129},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.2178},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.2214},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2311},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2424}],"related":[{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/scripts","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/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading","title":"Upgrade Guides","summary":"Learn how to upgrade to the latest versions of Next.js.","outbound":[{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"},{"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/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.083},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","distance":0.1781},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.1849},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1864},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","distance":0.1972}],"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/upgrading/version-10","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/migrating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade","title":"Upgrade with a coding agent","summary":"Use a coding agent to upgrade and verify a Next.js app.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade"},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching"},{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components"}],"inbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade"},{"site":"nextjs","path":"/docs/app/getting-started/installation"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading"},{"site":"nextjs","path":"/docs/app/guides/ai-agents"},{"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/api-reference/cli/next"},{"site":"nextjs","path":"/docs/pages/getting-started/installation"},{"site":"nextjs","path":"/docs/pages/guides/upgrading"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/agentUpgrade","distance":0.1111},{"site":"nextjs","path":"/docs/app/guides/ai-agents","distance":0.2304},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.2633},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","distance":0.2767},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2807}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"requires"},{"site":"eve","path":"/docs/tutorial/ship-it","via":"neighbor"},{"site":"eve","path":"/docs/tools/tasks-upgrade","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-md-outperforms-skills-in-our-agent-evals","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","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/agent-upgrade"},{"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/config/next-config-js/skipProxyUrlNormalize"},{"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/api-reference/config/next-config-js/skipProxyUrlNormalize"},{"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/getting-started/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","distance":0.0033},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2186},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2322},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2369},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2622}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"requires"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","title":"How to upgrade to 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/getting-started/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.0076},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1393},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1849},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1867},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1981}],"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/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"requires"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","title":"How to upgrade to 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/getting-started/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1631},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.164},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.1883},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1938},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1979}],"related":[{"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-12","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","title":"How to upgrade to 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/agent-upgrade"},{"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/api-reference/functions/cacheLife"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag"},{"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"},{"site":"vercel-kb","path":"/kb/guide/deploy-medusa-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel"}],"requires":[{"site":"nextjs","path":"/docs/app/getting-started/upgrading"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/migrating-to-cache-components","distance":0.2118},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache","distance":0.2138},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.2279},{"site":"nextjs","path":"/docs/pages/guides/upgrading/codemods","distance":0.2328},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2337}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploy-medusa-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","via":"requires"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-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/api-reference/directives/use-cache-remote","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/videos","title":"How to use and optimize 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":[],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.2451},{"site":"vercel-kb","path":"/kb/guide/best-practices-for-hosting-videos-on-vercel-nextjs-mp4-gif","distance":0.2518},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.2575},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2658},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.278}],"related":[{"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-optimize-rsc-payload-size","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-optimize-next.js-sitecore-jss","via":"neighbor"},{"site":"vercel-web","path":"/blog/guide-to-fast-websites-with-next-js-tips-for-maximizing-server-speeds","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating-next-js-and-contentful-for-your-headless-cms","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/pages/getting-started/images","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/metadata-and-og-images","via":"neighbor"}]},{"site":"nextjs","path":"/docs/app/guides/view-transitions","title":"Designing 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/interactive-apps"}],"requires":[{"site":"nextjs","path":"/docs/app/guides"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2459},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/parallel-routes","distance":0.2734},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2761},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2909},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2912}],"related":[{"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/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/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.1954},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.199},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2021},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.2118},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2266}],"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/pages/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference","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.1954},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2099},{"site":"nextjs","path":"/docs/architecture/supported-browsers","distance":0.2335},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2392},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.2481}],"related":[{"site":"nextjs","path":"/docs/pages/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/app/getting-started","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/app/guides/local-development"},{"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":"vercel-web","path":"/blog/whats-new-in-react-19","distance":0.3079},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.3091},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.3173},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","distance":0.3174}],"related":[{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-react-18-improves-application-performance","via":"neighbor"},{"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/lazy-loading","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","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"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js"}],"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/reactCompiler","distance":0.1942},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2063},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2187},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2358}],"related":[{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js","via":"inbound"},{"site":"swr","path":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/blog/swr-v1","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactCompiler","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/config/next-config-js/useLightningcss","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.1779},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1901},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2034},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2093},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.2234}],"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/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"}]},{"site":"nextjs","path":"/docs/community","title":"Next.js 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.2169},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2461},{"site":"nextjs","path":"/docs/community/rspack","distance":0.2624},{"site":"nextjs","path":"/docs/architecture","distance":0.2695},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2805}],"related":[{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture","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/architecture/accessibility","via":"neighbor"}]},{"site":"nextjs","path":"/docs/community/contribution-guide","title":"Docs 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":[],"neighbors":[{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1856},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1866},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1929},{"site":"nextjs","path":"/docs/pages/guides/mdx","distance":0.2059},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2069}],"related":[{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/mdx","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"}]},{"site":"nextjs","path":"/docs/community/rspack","title":"Rspack Integration","summary":"Use the `next-rspack` plugin to bundle your Next.js with Rspack.","outbound":[],"inbound":[{"site":"nextjs","path":"/docs/community"}],"requires":[],"neighbors":[{"site":"nextjs","path":"/docs/community","distance":0.2624},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackRustReactCompiler","distance":0.3473},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.3508},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","distance":0.3537},{"site":"workflow","path":"/docs/api-reference/workflow-next","distance":0.3578}],"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/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/guides/package-bundling","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/package-bundling","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.0753},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.1154},{"site":"nextjs","path":"/docs/pages/api-reference/functions","distance":0.1456},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1689},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1869}],"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/app/api-reference/components","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.0133},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1028},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.113},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/creating-an-adapter","distance":0.1246},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.1323}],"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/configuration","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.0033},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3274},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.343},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.3645},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.3655}],"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.0085},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1198},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1241},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1323},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1435}],"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.0043},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1246},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1376},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.1582},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/adapterPath","distance":0.1695}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/adapters/creating-an-adapter","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/custom-adapters","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/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.2459},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config/runtime","distance":0.2498},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2571},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2575}],"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/config/next-config-js","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.2234},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.2369},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.243},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2573}],"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/app/guides/keeping-pages-static","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.0113},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-with-next-routing","distance":0.1644},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-with-next-routing","distance":0.1749},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.188},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.2573}],"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.0076},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/routing-information","distance":0.1644},{"site":"nextjs","path":"/docs/app/api-reference/adapters/routing-information","distance":0.1832},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1886},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.2168}],"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.0604},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.2059},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2112},{"site":"nextjs","path":"/docs/app/guides/deploying-to-platforms","distance":0.2327},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.2459}],"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.199},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.2034},{"site":"nextjs","path":"/docs/app/api-reference/adapters/use-cases","distance":0.2496},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/use-cases","distance":0.2556}],"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/guides/deploying-to-platforms","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.009},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1368},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1456},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/adapterPath","distance":0.2275},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.2316}],"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/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/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/app/api-reference","distance":0.2069},{"site":"nextjs","path":"/docs/pages/api-reference/cli/create-next-app","distance":0.218},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2267},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2309}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/cli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/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","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.0024},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1765},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1892},{"site":"nextjs","path":"/docs/app/api-reference/cli","distance":0.2138},{"site":"nextjs","path":"/docs/pages/api-reference/cli","distance":0.218}],"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":"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/cli","via":"neighbor"},{"site":"nextjs","path":"/docs/app/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/config/next-config-js/agentUpgrade"},{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"nextjs","path":"/docs/app/guides/building"},{"site":"nextjs","path":"/docs/app/guides/package-bundling"},{"site":"nextjs","path":"/docs/app/guides/upgrading/agent-upgrade"}],"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.0056},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.2789},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.2892},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.3057},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3091}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/run","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","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/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.0585},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.1154},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.1772},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2109},{"site":"nextjs","path":"/docs/pages/api-reference/functions","distance":0.2131}],"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/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","title":"Font Module","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.0837},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","distance":0.1438},{"site":"nextjs","path":"/docs/app/getting-started/fonts","distance":0.1605},{"site":"vercel-web","path":"/blog/nextjs-next-font","distance":0.2667},{"site":"vercel-web","path":"/blog/optimizing-web-fonts","distance":0.2761}],"related":[{"site":"vercel-web","path":"/blog/nextjs-next-font","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-web-fonts","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/fonts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/fonts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/not-found","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/internationalization","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.0791},{"site":"nextjs","path":"/docs/app/guides/forms","distance":0.2259},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.2464},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.3269},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.3321}],"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.2459},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2769},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2864},{"site":"nextjs","path":"/docs/app/api-reference/components","distance":0.2901},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.3011}],"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"},{"site":"vercel-web","path":"/blog/images-on-the-web"}],"requires":[{"site":"nextjs","path":"/docs/pages/api-reference/components"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.0266},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.065},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.2259},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2313},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/images","distance":0.261}],"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-web","path":"/blog/images-on-the-web","via":"inbound"},{"site":"vercel-docs","path":"/docs/build-output-api/configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/nextjs","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/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/app/api-reference/components/image","distance":0.0595},{"site":"nextjs","path":"/docs/pages/api-reference/components/image","distance":0.065},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.216},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.2304},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/images","distance":0.2466}],"related":[{"site":"vercel-web","path":"/blog/images-on-the-web","via":"neighbor"},{"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/app/api-reference/config/next-config-js/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/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.1788},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.1849},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.1854},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1922},{"site":"nextjs","path":"/docs/app/api-reference/components/link","distance":0.213}],"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/api-reference/components/link","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","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.0068},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.1004},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.1112},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2594},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","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/api-reference/file-conventions/page","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/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.0409},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.0704},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1594},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1724},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1814}],"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/pages/guides","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.0069},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2248},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2386},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2413},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2462}],"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/enablePrerenderSourceMaps"},{"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/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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.0316},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.168},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.1724},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1743},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1751}],"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/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","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.0054},{"site":"nextjs","path":"/docs/pages/api-reference/adapters","distance":0.1028},{"site":"nextjs","path":"/docs/app/api-reference/adapters","distance":0.1086},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/configuration","distance":0.1198},{"site":"nextjs","path":"/docs/app/api-reference/adapters/configuration","distance":0.1297}],"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":"flags-sdk","path":"/docs/providers/custom-adapters","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.0034},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2863},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/crossOrigin","distance":0.291},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","distance":0.3093},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.31}],"related":[{"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/crossOrigin","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/crossOrigin","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/serverActions","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.0082},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2393},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3101},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3144},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3401}],"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/pages/api-reference/config/next-config-js/basePath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/public-folder","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.0067},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2957},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3016},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.3081},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.31}],"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/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","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.1848},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2237},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2536},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/transpilePackages","distance":0.2623},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","distance":0.2766}],"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/transpilePackages","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/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.0138},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.2898},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2929},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2987},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3083}],"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/app/api-reference/config/next-config-js","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/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.0109},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2861},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/allowedDevOrigins","distance":0.291},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","distance":0.2953},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3112}],"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/pages/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/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.0045},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateBuildId","distance":0.2411},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","distance":0.2569},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.3113},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3357}],"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":"vercel-docs","path":"/docs/skew-protection","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/pages/getting-started/deploying","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/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.2552},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2608},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.269},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2718}],"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/pages/guides/static-exports","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/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.0125},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/appDir","distance":0.2844},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.3141},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3254},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.3312}],"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/app/api-reference/file-conventions/src-folder","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps","title":"enablePrerenderSourceMaps","summary":"Enable source maps for errors during prerendering in next build.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"site":"nextjs","path":"/docs/app/guides/memory-usage"}],"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/enablePrerenderSourceMaps","distance":0.0163},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","distance":0.2461},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","distance":0.2552},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2947},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.3072}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/productionBrowserSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","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/skipTrailingSlashRedirect","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.1365},{"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.2617},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2624}],"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/pages/building-your-application/configuring","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.0055},{"site":"nextjs","path":"/docs/pages/guides/static-exports","distance":0.2216},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.2375},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2784},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2967}],"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":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId"},{"site":"nextjs","path":"/docs/app/guides/self-hosting"}],"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.0135},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","distance":0.2411},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/deploymentId","distance":0.2482},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.3124},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3268}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateBuildId","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/generate-id","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/deploymentId","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application","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.0198},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2893},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/poweredByHeader","distance":0.2989},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3129},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.3177}],"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/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/typescript","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.0144},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2159},{"site":"nextjs","path":"/docs/app/guides/content-security-policy","distance":0.2172},{"site":"nextjs","path":"/docs/app/api-reference/functions/headers","distance":0.226},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2279}],"related":[{"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/app/api-reference/functions/headers","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","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.0129},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2882},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3092},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.3124},{"site":"nextjs","path":"/docs/app/api-reference/functions/fetch","distance":0.3165}],"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/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/agentRules","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.0068},{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.1916},{"site":"nextjs","path":"/docs/pages/getting-started/images","distance":0.1949},{"site":"nextjs","path":"/docs/pages/api-reference/components/image-legacy","distance":0.2485},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.254}],"related":[{"site":"nextjs","path":"/docs/app/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/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.0233},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2333},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2541},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2745},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.2893}],"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/api-reference/config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","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.0091},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2856},{"site":"nextjs","path":"/docs/app/guides/memory-usage","distance":0.3002},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3026},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.3046}],"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.203},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2044},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.211},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2192}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js","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/app/api-reference/config/next-config-js/serverExternalPackages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","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":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack"}],"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.0053},{"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","distance":0.2103},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2198},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2602}],"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/pages/getting-started/installation","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.0555},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.26},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2836},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2874},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2908}],"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/getting-started/installation","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.0117},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2886},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/generateEtags","distance":0.2989},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3025},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/generateEtags","distance":0.3077}],"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/pages/api-reference/config/next-config-js/headers","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.0078},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps","distance":0.223},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps","distance":0.2461},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.3236},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3322}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/enablePrerenderSourceMaps","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/enablePrerenderSourceMaps","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/exportPathMap","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.0146},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheMaxMemorySize","distance":0.3058},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.3095},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength","distance":0.3429},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.3501}],"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/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","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.0112},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.275},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2758},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2846},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.2885}],"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/pages/building-your-application/rendering/automatic-static-optimization","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.1487},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1514},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/rewrites","distance":0.1706}],"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/config/next-config-js/skipTrailingSlashRedirect","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.1692},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1706},{"site":"vercel-docs","path":"/docs/routing/rewrites","distance":0.1941},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.2566}],"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/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","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.1848},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2044},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.2159},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2277}],"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/skipProxyUrlNormalize","title":"skipProxyUrlNormalize","summary":"Let Proxy see the original request instead of Next.js's normalized version. Formerly skipMiddlewareUrlNormalize.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/proxy"},{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods"}],"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/skipProxyUrlNormalize","distance":0.0035},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1403},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1442},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.2149},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2648}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","title":"skipTrailingSlashRedirect","summary":"Disable the automatic trailing slash redirects so you can handle trailing slashes yourself in Proxy.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/link"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash"},{"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/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/skipTrailingSlashRedirect","distance":0.0059},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.1442},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","distance":0.1456},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/trailingSlash","distance":0.1704},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","distance":0.1705}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/examples/proxy","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/trailingSlash","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/redirecting","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.0064},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1692},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","distance":0.1705},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.2815},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2997}],"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/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","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/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.0143},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverExternalPackages","distance":0.2312},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/serverExternalPackages","distance":0.2424},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies","distance":0.2623},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2657}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/transpilePackages","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","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/config/next-config-js/output"},{"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.0065},{"site":"nextjs","path":"/docs/app/api-reference/turbopack","distance":0.1757},{"site":"nextjs","path":"/docs/pages/api-reference/turbopack","distance":0.1758},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue","distance":0.2902},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3056}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/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","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","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.0174},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy","distance":0.2245},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","distance":0.2251},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cssChunking","distance":0.2302},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2511}],"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/turbopackPluginRuntimeStrategy","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackGc","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","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.0391},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/useTypeScriptCli","distance":0.1901},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1948},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/useTypeScriptCli","distance":0.1951},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2259}],"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.0028},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2683},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2694},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/optimizePackageImports","distance":0.2714},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/optimizePackageImports","distance":0.277}],"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/lazy-loading","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.0018},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2336},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","distance":0.2399},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2492},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.2583}],"related":[{"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","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","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.0093},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/typescript","distance":0.1901},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/typescript","distance":0.1911},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.2152},{"site":"nextjs","path":"/docs/app/api-reference/config/typescript","distance":0.2712}],"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.0098},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.2395},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.2402},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.2531},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.264}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","via":"neighbor"},{"site":"vercel-web","path":"/blog/core-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/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":"Custom Webpack Config","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.0038},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2092},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2111},{"site":"nextjs","path":"/docs/pages/guides/babel","distance":0.2425},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/env","distance":0.2617}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-next/with-workflow","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/lazy-loading","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.116},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1539},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1608},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1665},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.168}],"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/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/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.0055},{"site":"nextjs","path":"/docs/app/api-reference/adapters/invoking-entrypoints","distance":0.2895},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2896},{"site":"nextjs","path":"/docs/pages/api-reference/adapters/invoking-entrypoints","distance":0.2909},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.3071}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/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/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/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/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.0524},{"site":"nextjs","path":"/docs/pages/getting-started/project-structure","distance":0.1872},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata","distance":0.192},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.2089},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.2219}],"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.1407},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.1499},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.1504},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/instrumentationClientInject","distance":0.2673}],"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":"eve","path":"/docs/observability/instrumentation","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/config/next-config-js/skipProxyUrlNormalize"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipTrailingSlashRedirect"},{"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.0083},{"site":"nextjs","path":"/docs/app/getting-started/proxy","distance":0.1921},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2023},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","distance":0.2211},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.2371}],"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":"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/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","title":"public Folder","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.2322},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2332},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.2367},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.2483}],"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.1854},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.2217},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.2279},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/public-folder","distance":0.2367}],"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/pages/getting-started/installation","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/catchError"},{"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.1222},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.1456},{"site":"nextjs","path":"/docs/app/api-reference","distance":0.2018},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.2094},{"site":"nextjs","path":"/docs/pages/api-reference/components","distance":0.2131}],"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/building-your-application/routing","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/components","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/api-reference/functions/catchError","title":"catchError","summary":"API Reference for the catchError function.","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/catchError","distance":0.0288},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.2032},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.2096},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","distance":0.2963},{"site":"nextjs","path":"/docs/app/api-reference/functions/not-found","distance":0.3047}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/functions/catchError","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","via":"neighbor"},{"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/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.1685},{"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.209},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.2153},{"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.1154},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1208},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","distance":0.1685},{"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.2025}],"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.0954},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1554},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1743},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1762}],"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/guides/keeping-pages-static","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.0954},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.112},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-server-side-props","distance":0.1208},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-paths","distance":0.1629},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1684}],"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.1607},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response","distance":0.1621},{"site":"nextjs","path":"/docs/app/api-reference/functions/cookies","distance":0.1914},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.2675}],"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.009},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.1607},{"site":"nextjs","path":"/docs/app/api-reference/functions/next-request","distance":0.1694},{"site":"nextjs","path":"/docs/app/guides/redirecting","distance":0.1963},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2048}],"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.0728},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-search-params","distance":0.1535},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.1759},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-search-params","distance":0.1793},{"site":"nextjs","path":"/docs/app/api-reference/functions/generate-static-params","distance":0.1932}],"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":"Use the Next.js `useReportWebVitals` hook to send Core Web Vitals and custom performance metrics to analytics.","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.0298},{"site":"nextjs","path":"/docs/pages/guides/analytics","distance":0.0572},{"site":"nextjs","path":"/docs/app/guides/analytics","distance":0.0817},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2531},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2648}],"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":"vercel-web","path":"/blog/core-web-vitals","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.218},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2254},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2586},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2712},{"site":"nextjs","path":"/docs/app/guides/adopting-partial-prefetching","distance":0.2776}],"related":[{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","via":"neighbor"},{"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/app/guides/adopting-partial-prefetching","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.0549},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-params","distance":0.1535},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-params","distance":0.204},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/page","distance":0.2199},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-router","distance":0.2495}],"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.0064},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/robots","distance":0.3215},{"site":"nextjs","path":"/docs/pages/api-reference/functions","distance":0.3287},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-request","distance":0.333},{"site":"nextjs","path":"/docs/app/api-reference/functions","distance":0.3358}],"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/app/api-reference/functions","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/functions/next-response","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/turbopackGc"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImportsSSR"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackPluginRuntimeStrategy"},{"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.0054},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopack","distance":0.1744},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/turbopack","distance":0.1758},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackLazyDynamicImports","distance":0.2756},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","distance":0.2767}],"related":[{"site":"nextjs","path":"/docs/app/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/local-development","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/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.1429},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1444},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1448},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.1594},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1616}],"related":[{"site":"nextjs","path":"/docs/app/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/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.0704},{"site":"nextjs","path":"/docs/app/api-reference/config","distance":0.0895},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1429},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.208},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.2084}],"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/getting-started","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/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.1591},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-error","distance":0.1725},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.1942},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.2512},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2672}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/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/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"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application"}],"neighbors":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1834},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1944},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1967},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.1989},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1994}],"related":[{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"inbound"},{"site":"vercel-web","path":"/blog/nextjs-server-side-rendering-vs-static-generation","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/guides/public-static-pages","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":"swr","path":"/docs/getting-started","distance":0.147},{"site":"swr","path":"/docs/with-nextjs","distance":0.1496},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1507},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1588},{"site":"swr","path":"/docs/prefetching","distance":0.1823}],"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/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.1154},{"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.1684},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.1709},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-initial-props","distance":0.1907}],"related":[{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"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.1348},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.1629},{"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.2161}],"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/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","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.112},{"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.1348},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.1554},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/static-site-generation","distance":0.1827}],"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.143},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.1634},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1782},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.1907},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.1944}],"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/guides/incremental-static-regeneration-cache-components","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.1907},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.2037},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.2183},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.2185},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2189}],"related":[{"site":"nextjs","path":"/docs/pages/guides/production-checklist","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-props","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/static-exports","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.143},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/server-side-rendering","distance":0.1588},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.2111},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2175},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.2184}],"related":[{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"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"},{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown"}],"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.1588},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.1634},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","distance":0.1709},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/automatic-static-optimization","distance":0.2422},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.2536}],"related":[{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","via":"inbound"},{"site":"swr","path":"/docs/with-nextjs","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":"vercel-web","path":"/blog/nextjs-server-side-rendering-vs-static-generation","distance":0.1791},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.1827},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.197},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering","distance":0.2043},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","distance":0.2161}],"related":[{"site":"vercel-web","path":"/blog/nextjs-server-side-rendering-vs-static-generation","via":"neighbor"},{"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/app/guides/keeping-pages-static","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.0992},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1634},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1719},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1741},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/dynamic-routes","distance":0.1748}],"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-changelog","path":"/changelog/track-server-side-custom-events-with-vercel-web-analytics"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route","distance":0.172},{"site":"nextjs","path":"/docs/app/getting-started/route-handlers","distance":0.1789},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.1852},{"site":"nextjs","path":"/docs/pages/guides/redirecting","distance":0.202},{"site":"nextjs","path":"/docs/app/guides/backend-for-frontend","distance":0.2034}],"related":[{"site":"vercel-changelog","path":"/changelog/track-server-side-custom-events-with-vercel-web-analytics","via":"inbound"},{"site":"vercel-docs","path":"/docs/botid/advanced-configuration","via":"inbound"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"inbound"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","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/api-reference/functions/next-response","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","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.1795},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.2298},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2365},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-document","distance":0.2476},{"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/app/getting-started/layouts-and-pages","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","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.2476},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2636},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2821},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2823},{"site":"nextjs","path":"/docs/community/contribution-guide","distance":0.3009}],"related":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","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.1725},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.2087},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/error","distance":0.2339},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring","distance":0.2633},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.2675}],"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/getting-started/project-structure"},{"site":"nextjs","path":"/docs/pages/guides/internationalization"}],"requires":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing"}],"neighbors":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1748},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.1862},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1874},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/dynamic-routes","distance":0.1998},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/route-segment-config","distance":0.2198}],"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/app/api-reference/file-conventions/route-segment-config","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","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/linking-and-navigating","distance":0.1417},{"site":"nextjs","path":"/docs/app/getting-started/layouts-and-pages","distance":0.1428},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.156},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1741},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.1788}],"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/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.0914},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/linking-and-navigating","distance":0.156},{"site":"nextjs","path":"/docs/pages/building-your-application/routing","distance":0.1634},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.1657},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/custom-app","distance":0.1795}],"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 - Pages Router","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.0992},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.1263},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1448},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/pages-and-layouts","distance":0.1657},{"site":"nextjs","path":"/docs/pages/api-reference","distance":0.1689}],"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":"How to use CSS in your application","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/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.0321},{"site":"nextjs","path":"/docs/pages/guides/tailwind-v3-css","distance":0.1196},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.1402},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.1643},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1672}],"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/getting-started","via":"requires"}]},{"site":"nextjs","path":"/docs/pages/getting-started/deploying","title":"How to deploy your Next.js application","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/app/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.1323},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.1944},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.201},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2026}],"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/getting-started","via":"requires"},{"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/getting-started/fonts","title":"How to use 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/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/fonts","distance":0.0487},{"site":"nextjs","path":"/docs/pages/api-reference/components/font","distance":0.1438},{"site":"nextjs","path":"/docs/app/api-reference/components/font","distance":0.1958},{"site":"vercel-web","path":"/blog/nextjs-next-font","distance":0.226},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.2308}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/fonts","via":"neighbor"},{"site":"vercel-web","path":"/blog/nextjs-next-font","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-web-fonts","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","via":"requires"},{"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/pages/getting-started/images","title":"Image Optimization","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/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/images","distance":0.0193},{"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.2102},{"site":"nextjs","path":"/docs/app/api-reference/components/image","distance":0.216},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/metadata/opengraph-image","distance":0.2161}],"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/getting-started","via":"requires"},{"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/getting-started/installation","title":"Create a new Next.js application","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/app/guides/upgrading/agent-upgrade"},{"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/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.0211},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1604},{"site":"nextjs","path":"/docs/pages/api-reference/config/typescript","distance":0.1608},{"site":"nextjs","path":"/docs/app/getting-started","distance":0.165},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.1715}],"related":[{"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/pages/api-reference/config/typescript","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started","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 and Organization","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/dynamic-routes"},{"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/app/getting-started"}],"neighbors":[{"site":"nextjs","path":"/docs/app/api-reference/file-conventions","distance":0.1561},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/src-folder","distance":0.1591},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions/src-folder","distance":0.1854},{"site":"nextjs","path":"/docs/pages/api-reference/file-conventions","distance":0.1872},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2056}],"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/app/getting-started","via":"requires"},{"site":"nextjs","path":"/docs/pages/guides","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.129},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1578},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1602},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.1616},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1643}],"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":"How to set up 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.0393},{"site":"nextjs","path":"/docs/pages/api-reference/functions/use-report-web-vitals","distance":0.0572},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-report-web-vitals","distance":0.1001},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webVitalsAttribution","distance":0.2402},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.2424}],"related":[{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/core-web-vitals","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":"How to implement authentication in Next.js","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.167},{"site":"nextjs","path":"/docs/app/guides/authentication","distance":0.2249},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2438},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2447},{"site":"nextjs","path":"/docs/pages/guides/forms","distance":0.2465}],"related":[{"site":"nextjs","path":"/docs/app/guides/authentication","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/forms","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/guides/babel","title":"How to configure Babel in Next.js","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/guides/post-css","distance":0.2397},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/webpack","distance":0.2425},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/webpack","distance":0.2464},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2472},{"site":"nextjs","path":"/docs/pages/api-reference/config","distance":0.249}],"related":[{"site":"nextjs","path":"/docs/pages/guides/post-css","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/pages/api-reference/config","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/ci-build-caching","title":"How to configure Continuous Integration (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.261},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/cacheLife","distance":0.2699},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","distance":0.2703},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","distance":0.2704}],"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/api-reference/config/next-config-js/cacheLife","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/cdn-caching","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/content-security-policy","title":"How to set a Content Security Policy (CSP) for your Next.js application","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.0211},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/headers","distance":0.2451},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2687},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.273},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/headers","distance":0.2743}],"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/pages/guides/self-hosting","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/pages/guides/css-in-js","title":"How to use CSS-in-JS libraries","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.1353},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1643},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.175},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2057},{"site":"nextjs","path":"/docs/pages/guides/sass","distance":0.2186}],"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":"How to set up a custom server in Next.js","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.0286},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2289},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2305},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2518},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2519}],"related":[{"site":"nextjs","path":"/docs/app/guides/custom-server","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/installation","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/pages/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/debugging","title":"How to use debugging tools with Next.js","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.0035},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.2476},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.2481},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.2509},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2596}],"related":[{"site":"nextjs","path":"/docs/app/guides/debugging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/local-development","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/guides/draft-mode","title":"How to preview content with Draft Mode in Next.js","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.1341},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.1673},{"site":"vercel-docs","path":"/docs/draft-mode","distance":0.1761},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.295}],"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/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/environment-variables","title":"How to use environment variables in Next.js","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.1365},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/env","distance":0.1407},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2357},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2414}],"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":"How to create forms with API Routes","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.1808},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.1852},{"site":"nextjs","path":"/docs/app/getting-started/mutating-data","distance":0.2051},{"site":"nextjs","path":"/docs/app/getting-started/error-handling","distance":0.2169}],"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":"How to implement Incremental Static Regeneration (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.0217},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration-cache-components","distance":0.1675},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.1935},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","distance":0.2107},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2149}],"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-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-a-flexible-way-to-cache-dynamic-content","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/caching-without-cache-components","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/assetPrefix","via":"inbound"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-server-side-props","via":"inbound"}]},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","title":"How to set up 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.0105},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","distance":0.131},{"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.1688},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.2246}],"related":[{"site":"nextjs","path":"/docs/app/guides/instrumentation","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/file-conventions/instrumentation","via":"neighbor"},{"site":"eve","path":"/docs/observability/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":"How to implement internationalization in Next.js","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.1277},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1945},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2056},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2076},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","distance":0.2223}],"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/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/guides/self-hosting","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/lazy-loading","title":"How to lazy load Client Components and libraries","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.0717},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1802},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.211},{"site":"nextjs","path":"/docs/app/guides/public-static-pages","distance":0.2218},{"site":"nextjs","path":"/docs/app/guides/prefetching","distance":0.2265}],"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":"How to use markdown and MDX in Next.js","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.2059},{"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.2271}],"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.0082},{"site":"nextjs","path":"/docs/pages/getting-started","distance":0.196},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1973},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2031},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2059}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading","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":"How to migrate from Pages to the 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.0059},{"site":"nextjs","path":"/docs/app/guides/migrating/from-create-react-app","distance":0.2038},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","distance":0.213},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2305},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","distance":0.2354}],"related":[{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","via":"neighbor"},{"site":"vercel-web","path":"/blog/common-mistakes-with-the-next-js-app-router-and-how-to-fix-them","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/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-vite","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","title":"How to migrate from Create React App to Next.js","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"},{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo"}],"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.1931},{"site":"nextjs","path":"/docs/app/guides/migrating/app-router-migration","distance":0.212},{"site":"nextjs","path":"/docs/pages/guides/migrating/app-router-migration","distance":0.213}],"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":"How to migrate from Vite to Next.js","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"},{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo"}],"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.1866},{"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.2353},{"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":"How to build micro-frontends using multi-zones and Next.js","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.0234},{"site":"nextjs","path":"/docs/pages/guides","distance":0.219},{"site":"nextjs","path":"/docs/pages/building-your-application","distance":0.2562},{"site":"nextjs","path":"/docs/pages/guides/internationalization","distance":0.257},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.261}],"related":[{"site":"nextjs","path":"/docs/app/guides/multi-zones","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/api-reference/config/next-config-js","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","title":"How to instrument your Next.js app with 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.1907},{"site":"eve","path":"/docs/observability/otel","distance":0.229},{"site":"nextjs","path":"/docs/pages/guides/instrumentation","distance":0.238},{"site":"nextjs","path":"/docs/app/guides/instrumentation","distance":0.2465}],"related":[{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"eve","path":"/docs/observability/otel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","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/guides/package-bundling","title":"How to optimize package bundling","summary":"Learn how to optimize your application's server and client bundles.","outbound":[{"site":"nextjs","path":"/docs/app/api-reference/cli/next"},{"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.0096},{"site":"nextjs","path":"/docs/app/guides/production-checklist","distance":0.1332},{"site":"nextjs","path":"/docs/pages/guides/production-checklist","distance":0.16},{"site":"nextjs","path":"/docs/app/guides/local-development","distance":0.1742},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1995}],"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/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/memory-usage","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/post-css","title":"How to configure PostCSS in Next.js","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.1935},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2054},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.2166},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2229},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.2245}],"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":"How to preview content with Preview Mode in Next.js","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.1874},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/get-static-props","distance":0.2367},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.2441},{"site":"nextjs","path":"/docs/app/guides/keeping-pages-static","distance":0.2548}],"related":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","via":"neighbor"},{"site":"vercel-web","path":"/blog/nextjs-server-side-rendering-vs-static-generation","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/app/guides/keeping-pages-static","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":"How to optimize your Next.js application for 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.025},{"site":"nextjs","path":"/docs/pages/guides/package-bundling","distance":0.16},{"site":"nextjs","path":"/docs/pages/guides","distance":0.1768},{"site":"nextjs","path":"/docs/app/guides/package-bundling","distance":0.1895},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1977}],"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/api-reference/config/next-config-js","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/pages/guides/redirecting","title":"How to handle redirects in Next.js","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.1458},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/redirects","distance":0.1487},{"site":"nextjs","path":"/docs/app/api-reference/functions/redirect","distance":0.1887},{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes","distance":0.202}],"related":[{"site":"nextjs","path":"/docs/app/guides/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":"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/config/next-config-js/skipTrailingSlashRedirect","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/sass","title":"How to use Sass in Next.js","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.0111},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/sassOptions","distance":0.1743},{"site":"nextjs","path":"/docs/pages/getting-started/css","distance":0.1964},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.2182},{"site":"nextjs","path":"/docs/pages/guides/css-in-js","distance":0.2186}],"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":"How to load and optimize 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/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.0277},{"site":"nextjs","path":"/docs/pages/api-reference/components/script","distance":0.1112},{"site":"nextjs","path":"/docs/app/api-reference/components/script","distance":0.1218},{"site":"nextjs","path":"/docs/pages/guides/third-party-libraries","distance":0.2143},{"site":"nextjs","path":"/docs/app/guides/third-party-libraries","distance":0.2214}],"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/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/self-hosting","title":"How to self-host your Next.js application","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/config/next-config-js/supportsImmutableAssets"},{"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.0617},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1513},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js","distance":0.1792},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.1853},{"site":"nextjs","path":"/docs/app/guides/static-exports","distance":0.1868}],"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/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/pages/getting-started/installation","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/static-exports","title":"How to create a static export of your Next.js application","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.0164},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-props","distance":0.2018},{"site":"nextjs","path":"/docs/pages/api-reference/functions/get-static-paths","distance":0.2031},{"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.2095}],"related":[{"site":"nextjs","path":"/docs/app/guides/static-exports","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/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.1196},{"site":"nextjs","path":"/docs/app/getting-started/css","distance":0.1518},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2039},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2469}],"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.0288},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.1419},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1442},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1496},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.1653}],"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":"How to set up Cypress with Next.js","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.0131},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1892},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.205},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.244},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.2448}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/app/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/pages/guides/testing/jest","title":"How to set up Jest with Next.js","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.1375},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1496},{"site":"nextjs","path":"/docs/app/guides/testing/vitest","distance":0.1545},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1627}],"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":"How to set up Playwright with Next.js","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.1881},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.2037},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","distance":0.2519},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","distance":0.2519}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/playwright","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/playwright","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/guides/e2e-tests","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/testing/cypress","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/testing/vitest","title":"How to set up Vitest with Next.js","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.0177},{"site":"nextjs","path":"/docs/pages/guides/testing/jest","distance":0.1375},{"site":"nextjs","path":"/docs/app/guides/testing/jest","distance":0.1382},{"site":"nextjs","path":"/docs/pages/guides/testing","distance":0.1419},{"site":"nextjs","path":"/docs/app/guides/testing","distance":0.1582}],"related":[{"site":"nextjs","path":"/docs/app/guides/testing/vitest","via":"neighbor"},{"site":"workflow","path":"/docs/testing/server-based","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":"How to optimize 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.0129},{"site":"nextjs","path":"/docs/pages/guides/scripts","distance":0.2143},{"site":"nextjs","path":"/docs/app/guides/scripts","distance":0.2253},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","distance":0.2324},{"site":"nextjs","path":"/docs/pages/guides","distance":0.2427}],"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/api-reference/config/next-config-js","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/app/guides/upgrading/agent-upgrade"},{"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.083},{"site":"nextjs","path":"/docs/app/getting-started/upgrading","distance":0.1168},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","distance":0.1353},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1765},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.191}],"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/getting-started/installation","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","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/agent-upgrade"},{"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.0033},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.2124},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.2289},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","distance":0.2328},{"site":"nextjs","path":"/docs/pages/api-reference/components/link","distance":0.2598}],"related":[{"site":"nextjs","path":"/docs/app/guides/upgrading/codemods","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-react-19","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-16","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/migrating/from-create-react-app","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-10","title":"How to upgrade to 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.1353},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1911},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1972},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1988},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.2057}],"related":[{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","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/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":"How to upgrade to 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.1335},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.158},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1631},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","distance":0.1678},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","distance":0.1805}],"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/app/guides/upgrading/version-15","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-9","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","title":"How to upgrade to 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.1335},{"site":"nextjs","path":"/docs/architecture/nextjs-compiler","distance":0.1549},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1551},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1861},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1883}],"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/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","title":"How to upgrade to 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.1343},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","distance":0.1393},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","distance":0.1551},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.158},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-15","distance":0.1979}],"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/app/guides/upgrading/version-15","via":"neighbor"}]},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","title":"How to upgrade to 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.0076},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-13","distance":0.1343},{"site":"nextjs","path":"/docs/pages/guides/upgrading","distance":0.1765},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1805},{"site":"nextjs","path":"/docs/app/guides/upgrading","distance":0.1864}],"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/pages/guides/upgrading/version-11","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-9","title":"How to upgrade to 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.164},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-11","distance":0.1678},{"site":"nextjs","path":"/docs/pages/getting-started/installation","distance":0.1715},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","distance":0.1834},{"site":"nextjs","path":"/docs/app/getting-started/installation","distance":0.1838}],"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/api-reference/config/next-config-js","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/installation","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":[{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5"}],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","distance":0.1729},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.1792},{"site":"streamdown","path":"/docs/usage","distance":0.1794},{"site":"streamdown","path":"/docs/migrate","distance":0.1878},{"site":"streamdown","path":"/docs/getting-started","distance":0.1925}],"related":[{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"}]},{"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":[],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/usage","distance":0.2325},{"site":"streamdown","path":"/docs","distance":0.2354},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.2487},{"site":"streamdown","path":"/docs/components","distance":0.2528},{"site":"streamdown","path":"/docs/styling","distance":0.2558}],"related":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","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/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","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":"vercel-changelog","path":"/changelog/streamdown-v2"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/animation","distance":0.2683},{"site":"streamdown","path":"/docs","distance":0.3255},{"site":"streamdown","path":"/docs/usage","distance":0.3321},{"site":"streamdown","path":"/docs/styling","distance":0.3351},{"site":"streamdown","path":"/docs/typography","distance":0.3415}],"related":[{"site":"vercel-changelog","path":"/changelog/streamdown-v2","via":"inbound"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"streamdown","path":"/docs/animation","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","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.0942},{"site":"streamdown","path":"/docs/usage","distance":0.1984},{"site":"streamdown","path":"/docs/plugins/math","distance":0.2382},{"site":"streamdown","path":"/docs/custom-renderers","distance":0.2395},{"site":"streamdown","path":"/docs/components","distance":0.241}],"related":[{"site":"streamdown","path":"/docs/plugins/code","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/plugins/math","via":"neighbor"},{"site":"streamdown","path":"/docs/custom-renderers","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.1391},{"site":"streamdown","path":"/docs/styling","distance":0.1785},{"site":"streamdown","path":"/docs/usage","distance":0.1941},{"site":"streamdown","path":"/docs/migrate","distance":0.1996},{"site":"streamdown","path":"/docs/faq","distance":0.2035}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"}]},{"site":"streamdown","path":"/docs/configuration","title":"Configuration","summary":"All available props and options for the Streamdown component.","outbound":[{"site":"streamdown","path":"/docs/plugins/cjk"},{"site":"streamdown","path":"/docs/plugins/math"},{"site":"streamdown","path":"/docs/security"}],"inbound":[{"site":"streamdown","path":"/docs/animation"},{"site":"streamdown","path":"/docs/internationalization"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/security","distance":0.2254},{"site":"streamdown","path":"/docs/components","distance":0.2301},{"site":"streamdown","path":"/docs/plugins/mermaid","distance":0.2504},{"site":"streamdown","path":"/docs/termination","distance":0.2724},{"site":"streamdown","path":"/docs/faq","distance":0.2838}],"related":[{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","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.2339},{"site":"streamdown","path":"/docs/components","distance":0.2377},{"site":"streamdown","path":"/docs/usage","distance":0.2386},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2395},{"site":"streamdown","path":"/docs/faq","distance":0.2449}],"related":[{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"requires"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/code-blocks","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/migrate","distance":0.1539},{"site":"streamdown","path":"/docs/usage","distance":0.1553},{"site":"streamdown","path":"/docs/getting-started","distance":0.1634},{"site":"streamdown","path":"/docs","distance":0.1961},{"site":"streamdown","path":"/docs/components","distance":0.2035}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","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":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization"},{"site":"streamdown","path":"/docs/migrate"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/migrate","distance":0.1611},{"site":"streamdown","path":"/docs/faq","distance":0.1634},{"site":"streamdown","path":"/docs/usage","distance":0.1921},{"site":"streamdown","path":"/docs","distance":0.1925},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","distance":0.2021}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"inbound"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/react-components","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/components","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.1768},{"site":"streamdown","path":"/docs/termination","distance":0.2117},{"site":"streamdown","path":"/docs/components","distance":0.2138},{"site":"streamdown","path":"/docs","distance":0.2186},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2236}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/cjk","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/plugins/mermaid","distance":0.2552},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2587},{"site":"streamdown","path":"/docs/gfm","distance":0.2755},{"site":"streamdown","path":"/docs/internationalization","distance":0.2788},{"site":"streamdown","path":"/docs/components","distance":0.2803}],"related":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"},{"site":"streamdown","path":"/docs/code-blocks","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/internationalization","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"}]},{"site":"streamdown","path":"/docs/internationalization","title":"Internationalization","summary":"Localize UI labels and configure text direction (dir) for RTL content.","outbound":[{"site":"streamdown","path":"/docs/configuration"}],"inbound":[],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/usage","distance":0.2537},{"site":"streamdown","path":"/docs/components","distance":0.2575},{"site":"streamdown","path":"/docs/migrate","distance":0.2615},{"site":"streamdown","path":"/docs/typography","distance":0.2636},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2676}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","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":[],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/security","distance":0.2371},{"site":"streamdown","path":"/docs/components","distance":0.3062},{"site":"chat-sdk","path":"/docs/modals","distance":0.3175},{"site":"streamdown","path":"/docs/configuration","distance":0.3188},{"site":"streamdown","path":"/docs/usage","distance":0.3296}],"related":[{"site":"chat-sdk","path":"/docs/modals","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/use-link-status","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/modals","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/internationalization","via":"neighbor"}]},{"site":"streamdown","path":"/docs/memoization","title":"Memoization","summary":"Prevent unnecessary re-renders by caching parsed Markdown blocks between streaming updates.","outbound":[],"inbound":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs","distance":0.2356},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","distance":0.2694},{"site":"streamdown","path":"/docs/usage","distance":0.2718},{"site":"streamdown","path":"/docs/animation","distance":0.273},{"site":"streamdown","path":"/docs/termination","distance":0.2829}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"inbound"},{"site":"ai-sdk","path":"/docs/advanced/caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/animation","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","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/faq","distance":0.1539},{"site":"streamdown","path":"/docs/getting-started","distance":0.1611},{"site":"streamdown","path":"/docs/usage","distance":0.1801},{"site":"streamdown","path":"/docs","distance":0.1878},{"site":"streamdown","path":"/docs/components","distance":0.1996}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","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/gfm","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":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization"},{"site":"streamdown","path":"/docs/animation"}],"requires":[{"site":"streamdown","path":"/docs/getting-started"}],"neighbors":[{"site":"streamdown","path":"/docs/security","distance":0.2172},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2202},{"site":"streamdown","path":"/docs/gfm","distance":0.2299},{"site":"streamdown","path":"/docs/faq","distance":0.2418},{"site":"streamdown","path":"/docs/migrate","distance":0.2442}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"inbound"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","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/plugins","distance":0.2202},{"site":"streamdown","path":"/docs/gfm","distance":0.2236},{"site":"streamdown","path":"/docs/plugins/math","distance":0.2514},{"site":"streamdown","path":"/docs/faq","distance":0.2678},{"site":"streamdown","path":"/docs/usage","distance":0.2707}],"related":[{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/math","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/code","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.0942},{"site":"streamdown","path":"/docs/faq","distance":0.268},{"site":"streamdown","path":"/docs/usage","distance":0.2691},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2721},{"site":"streamdown","path":"/docs/custom-renderers","distance":0.2782}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/cjk","via":"neighbor"},{"site":"streamdown","path":"/docs/custom-renderers","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.2192},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2382},{"site":"streamdown","path":"/docs/typography","distance":0.2423},{"site":"streamdown","path":"/docs/gfm","distance":0.2493},{"site":"streamdown","path":"/docs/plugins/cjk","distance":0.2514}],"related":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","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/faq","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/usage","distance":0.2314},{"site":"streamdown","path":"/docs/custom-renderers","distance":0.2339},{"site":"streamdown","path":"/docs/faq","distance":0.2413},{"site":"streamdown","path":"/docs/code-blocks","distance":0.2454},{"site":"streamdown","path":"/docs/configuration","distance":0.2504}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","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/configuration","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/configuration"},{"site":"streamdown","path":"/docs/link-safety"}],"requires":[{"site":"streamdown","path":"/docs"}],"neighbors":[{"site":"streamdown","path":"/docs/components","distance":0.1391},{"site":"streamdown","path":"/docs/plugins","distance":0.2172},{"site":"streamdown","path":"/docs/usage","distance":0.2225},{"site":"streamdown","path":"/docs/configuration","distance":0.2254},{"site":"streamdown","path":"/docs/faq","distance":0.2273}],"related":[{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/configuration","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","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.1593},{"site":"streamdown","path":"/docs/components","distance":0.1785},{"site":"streamdown","path":"/docs/getting-started","distance":0.2128},{"site":"streamdown","path":"/docs/faq","distance":0.2204},{"site":"streamdown","path":"/docs/migrate","distance":0.2242}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/css","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/getting-started/css","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"requires"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","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":"vercel-changelog","path":"/changelog/new-npm-package-for-automatic-recovery-of-broken-streaming-markdown","distance":0.1922},{"site":"streamdown","path":"/docs","distance":0.2083},{"site":"streamdown","path":"/docs/gfm","distance":0.2117},{"site":"streamdown","path":"/docs/components","distance":0.2251},{"site":"streamdown","path":"/docs/security","distance":0.2306}],"related":[{"site":"vercel-changelog","path":"/changelog/new-npm-package-for-automatic-recovery-of-broken-streaming-markdown","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/migrate","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.1593},{"site":"streamdown","path":"/docs/gfm","distance":0.1768},{"site":"streamdown","path":"/docs/getting-started","distance":0.2153},{"site":"streamdown","path":"/docs","distance":0.2267},{"site":"streamdown","path":"/docs/components","distance":0.2343}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"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/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/math","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.1553},{"site":"streamdown","path":"/docs","distance":0.1794},{"site":"streamdown","path":"/docs/migrate","distance":0.1801},{"site":"streamdown","path":"/docs/getting-started","distance":0.1921},{"site":"streamdown","path":"/docs/components","distance":0.1941}],"related":[{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","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":"streamdown","path":"/docs/code-blocks","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.0715},{"site":"swr","path":"/docs/getting-started","distance":0.2173},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2288},{"site":"swr","path":"/docs/advanced/performance","distance":0.2322},{"site":"swr","path":"/docs/pagination","distance":0.2344}],"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":"nextjs","path":"/docs/pages/guides/upgrading/version-12","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.0715},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1651},{"site":"swr","path":"/docs/getting-started","distance":0.1906},{"site":"swr","path":"/docs/with-nextjs","distance":0.1987},{"site":"swr","path":"/docs/pagination","distance":0.2025}],"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":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","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.232},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2387},{"site":"swr","path":"/docs/global-configuration","distance":0.255},{"site":"swr","path":"/docs/with-nextjs","distance":0.2583},{"site":"swr","path":"/blog/swr-v2","distance":0.2773}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","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/cacheComponents","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/directives/use-cache-private","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":"/blog/swr-v1","via":"neighbor"},{"site":"swr","path":"/docs/api","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.2926},{"site":"swr","path":"/docs/advanced/performance","distance":0.3016},{"site":"swr","path":"/blog/swr-v2","distance":0.3066},{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","distance":0.311},{"site":"swr","path":"/docs/typescript","distance":0.3263}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/devtools","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"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.1535},{"site":"swr","path":"/docs/advanced/understanding","distance":0.1643},{"site":"swr","path":"/docs/with-nextjs","distance":0.1967},{"site":"swr","path":"/docs/prefetching","distance":0.2052},{"site":"swr","path":"/blog/swr-v2","distance":0.2059}],"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":"/docs/prefetching","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","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.2124},{"site":"swr","path":"/docs/with-nextjs","distance":0.2689},{"site":"swr","path":"/docs/advanced/performance","distance":0.2786},{"site":"swr","path":"/docs/advanced/understanding","distance":0.2834},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2839}],"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/global-configuration","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/advanced/performance","distance":0.1643},{"site":"swr","path":"/docs/getting-started","distance":0.1687},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2054},{"site":"swr","path":"/docs/pagination","distance":0.2097},{"site":"swr","path":"/docs/with-nextjs","distance":0.218}],"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/pagination","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","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/data-fetching","distance":0.1702},{"site":"swr","path":"/docs/getting-started","distance":0.1932},{"site":"swr","path":"/docs/typescript","distance":0.1976},{"site":"swr","path":"/docs/error-handling","distance":0.2065},{"site":"swr","path":"/docs/pagination","distance":0.2084}],"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":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/error-handling","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","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.1995},{"site":"swr","path":"/docs/api","distance":0.2431},{"site":"swr","path":"/docs/typescript","distance":0.2595},{"site":"swr","path":"/docs/middleware","distance":0.2954},{"site":"swr","path":"/docs/conditional-fetching","distance":0.3012}],"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/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/typescript","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.2316},{"site":"swr","path":"/docs/suspense","distance":0.2727},{"site":"swr","path":"/docs/prefetching","distance":0.2919},{"site":"swr","path":"/docs/typescript","distance":0.2919},{"site":"swr","path":"/docs/api","distance":0.2951}],"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/api","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"},{"site":"swr","path":"/docs/global-configuration"}],"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/getting-started"},{"site":"swr","path":"/docs/pagination"}],"requires":[{"site":"swr","path":"/docs/getting-started"}],"neighbors":[{"site":"swr","path":"/docs/api","distance":0.1702},{"site":"swr","path":"/docs/typescript","distance":0.1772},{"site":"swr","path":"/docs/getting-started","distance":0.188},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.191},{"site":"swr","path":"/docs/arguments","distance":0.1995}],"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/api","via":"neighbor"},{"site":"swr","path":"/docs/typescript","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/error-handling","via":"neighbor"},{"site":"swr","path":"/docs/prefetching","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.1796},{"site":"swr","path":"/docs/api","distance":0.2065},{"site":"swr","path":"/docs/data-fetching","distance":0.2087},{"site":"swr","path":"/docs/typescript","distance":0.2379},{"site":"swr","path":"/docs/getting-started","distance":0.2713}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/configuring/error-handling","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":"/docs/suspense","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","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/data-fetching"},{"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":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.147},{"site":"swr","path":"/docs/with-nextjs","distance":0.1522},{"site":"swr","path":"/docs/advanced/performance","distance":0.1535},{"site":"swr","path":"/docs/advanced/understanding","distance":0.1687},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.1844}],"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":"inbound"},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","via":"neighbor"},{"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/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/data-fetching"},{"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.2275},{"site":"swr","path":"/docs/middleware","distance":0.2472},{"site":"swr","path":"/docs/with-nextjs","distance":0.2508},{"site":"swr","path":"/docs/advanced/cache","distance":0.255},{"site":"swr","path":"/docs/getting-started","distance":0.2559}],"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.2046},{"site":"swr","path":"/docs/api","distance":0.2191},{"site":"swr","path":"/docs/advanced/performance","distance":0.2393},{"site":"swr","path":"/docs/getting-started","distance":0.2398},{"site":"swr","path":"/docs/with-nextjs","distance":0.2399}],"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/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","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"},{"site":"swr","path":"/docs/revalidation"}],"requires":[{"site":"swr","path":"/docs/data-fetching"}],"neighbors":[{"site":"swr","path":"/blog/swr-v2","distance":0.2114},{"site":"swr","path":"/docs/api","distance":0.2152},{"site":"swr","path":"/docs/advanced/cache","distance":0.232},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.2356},{"site":"swr","path":"/docs/revalidation","distance":0.2366}],"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":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/revalidation","via":"neighbor"},{"site":"swr","path":"/docs/pagination","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.1899},{"site":"swr","path":"/blog/swr-v2","distance":0.2025},{"site":"swr","path":"/docs/api","distance":0.2084},{"site":"swr","path":"/docs/advanced/understanding","distance":0.2097},{"site":"swr","path":"/docs/with-nextjs","distance":0.2148}],"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":"/blog/swr-v2","via":"neighbor"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/with-nextjs","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.129},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1823},{"site":"swr","path":"/docs/suspense","distance":0.1847},{"site":"swr","path":"/docs/getting-started","distance":0.1922},{"site":"swr","path":"/docs/advanced/performance","distance":0.2052}],"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/prefetching","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/suspense","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"requires"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/api","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"},{"site":"swr","path":"/docs/mutation"}],"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.2366},{"site":"swr","path":"/docs/api","distance":0.2505},{"site":"swr","path":"/docs/advanced/understanding","distance":0.2537},{"site":"swr","path":"/docs/advanced/performance","distance":0.279},{"site":"swr","path":"/docs/getting-started","distance":0.2834}],"related":[{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/how-revalidation-works","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/revalidatePath","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/revalidating","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/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/blog/swr-v2","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.1786},{"site":"swr","path":"/docs/typescript","distance":0.2494},{"site":"swr","path":"/docs/api","distance":0.2639},{"site":"swr","path":"/docs/getting-started","distance":0.2731},{"site":"swr","path":"/docs/advanced/performance","distance":0.2963}],"related":[{"site":"swr","path":"/examples/subscription","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":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","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.1847},{"site":"swr","path":"/docs/with-nextjs","distance":0.2054},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching/swr","distance":0.223},{"site":"swr","path":"/docs/api","distance":0.2264},{"site":"swr","path":"/docs/getting-started","distance":0.2268}],"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":"nextjs","path":"/docs/app/api-reference/file-conventions/loading","via":"neighbor"},{"site":"swr","path":"/docs/getting-started","via":"requires"},{"site":"swr","path":"/docs/api","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","via":"neighbor"},{"site":"swr","path":"/docs/advanced/understanding","via":"neighbor"},{"site":"swr","path":"/docs/advanced/performance","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.1772},{"site":"swr","path":"/docs/api","distance":0.1976},{"site":"swr","path":"/docs/getting-started","distance":0.2014},{"site":"swr","path":"/docs/middleware","distance":0.2046},{"site":"swr","path":"/docs/with-nextjs","distance":0.2106}],"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.1096},{"site":"swr","path":"/docs/prefetching","distance":0.129},{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching/client-side","distance":0.1496},{"site":"swr","path":"/docs/getting-started","distance":0.1522},{"site":"nextjs","path":"/docs/app/guides/client-side-data-fetching","distance":0.1697}],"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":"nextjs","path":"/docs/app/guides/server-and-client-boundary","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/building-your-application/rendering/client-side-rendering","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/suspense","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.2304},{"site":"swr","path":"/examples/error-handling","distance":0.2462},{"site":"swr","path":"/examples/subscription","distance":0.2559},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","distance":0.3035},{"site":"swr","path":"/examples/infinite-loading","distance":0.3265}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/authentication","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"workflow","path":"/docs/advanced","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/authentication","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","via":"neighbor"},{"site":"swr","path":"/examples/optimistic-ui","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.1865},{"site":"swr","path":"/examples/error-handling","distance":0.2174},{"site":"swr","path":"/examples/auth","distance":0.2304},{"site":"swr","path":"/examples/infinite-loading","distance":0.2329},{"site":"swr","path":"/docs/data-fetching","distance":0.2563}],"related":[{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","via":"neighbor"},{"site":"swr","path":"/docs/data-fetching","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.1796},{"site":"swr","path":"/examples/basic","distance":0.2174},{"site":"swr","path":"/examples/auth","distance":0.2462},{"site":"swr","path":"/examples/subscription","distance":0.2757},{"site":"swr","path":"/examples/infinite-loading","distance":0.294}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"},{"site":"swr","path":"/docs/error-handling","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/error-handling","via":"neighbor"},{"site":"workflow","path":"/docs/errors","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-errors","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":"/examples/basic","distance":0.2329},{"site":"swr","path":"/docs/pagination","distance":0.275},{"site":"swr","path":"/examples/subscription","distance":0.2866},{"site":"swr","path":"/examples/error-handling","distance":0.294},{"site":"swr","path":"/examples/optimistic-ui","distance":0.3238}],"related":[{"site":"ai-sdk","path":"/docs/advanced","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/docs/pagination","via":"neighbor"},{"site":"swr","path":"/examples/subscription","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"},{"site":"swr","path":"/examples/optimistic-ui","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.309},{"site":"swr","path":"/examples/infinite-loading","distance":0.3238},{"site":"swr","path":"/examples/error-handling","distance":0.3356},{"site":"swr","path":"/examples/auth","distance":0.3357},{"site":"swr","path":"/examples/subscription","distance":0.3388}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-rsc","via":"neighbor"},{"site":"workflow","path":"/docs/internal","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/examples/subscription","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.1786},{"site":"swr","path":"/examples/basic","distance":0.1865},{"site":"swr","path":"/examples/auth","distance":0.2559},{"site":"swr","path":"/examples/error-handling","distance":0.2757},{"site":"swr","path":"/examples/infinite-loading","distance":0.2866}],"related":[{"site":"swr","path":"/docs/subscription","via":"neighbor"},{"site":"swr","path":"/examples/basic","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference","via":"neighbor"},{"site":"workflow","path":"/docs/foundations","via":"neighbor"},{"site":"swr","path":"/examples/auth","via":"neighbor"},{"site":"swr","path":"/examples/error-handling","via":"neighbor"},{"site":"swr","path":"/examples/infinite-loading","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.1585},{"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.1717}],"related":[{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"}]},{"site":"turborepo","path":"/docs/acknowledgments","title":"Acknowledgements","summary":"Credits and thanks to the developers, build systems, and monorepo tools that inspired Turborepo.","outbound":[{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo"}],"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.2392},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2755},{"site":"turborepo","path":"/docs/reference","distance":0.2764}],"related":[{"site":"turborepo","path":"/docs/community","via":"neighbor"},{"site":"vercel-web","path":"/blog/finishing-turborepos-migration-from-go-to-rust","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"}]},{"site":"turborepo","path":"/docs/community","title":"Community","summary":"Find ways to contribute, ask questions, and connect with other Turborepo developers.","outbound":[{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo"}],"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.2283},{"site":"turborepo","path":"/docs/getting-started/examples","distance":0.2377},{"site":"turborepo","path":"/docs/guides","distance":0.2444}],"related":[{"site":"turborepo","path":"/docs/acknowledgments","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/examples","via":"neighbor"},{"site":"turborepo","path":"/docs/guides","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"}]},{"site":"turborepo","path":"/docs/core-concepts","title":"Core concepts","summary":"Explore the foundational concepts that power Turborepo's monorepo tooling.","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/core-concepts/remote-caching"}],"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.22},{"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"},{"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.1352},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.189},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1908},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.1916},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.2003}],"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/frameworks/nextjs","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"},{"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.2057},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.2267},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2269}],"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/core-concepts"},{"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.2392},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2463},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2742},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.2974},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.3097}],"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":"turborepo","path":"/docs/openapi"},{"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/core-concepts"},{"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":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1292},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.1299},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.1507},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","distance":0.1561},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1646}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","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/crafting-your-repository/running-tasks","via":"inbound"},{"site":"turborepo","path":"/docs/guides/ai","via":"inbound"}]},{"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/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/developing-applications"},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies"},{"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/understanding-your-repository"},{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables"},{"site":"turborepo","path":"/docs/guides"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"}],"inbound":[{"site":"turborepo","path":"/docs/getting-started"}],"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.1618},{"site":"turborepo","path":"/docs/guides","distance":0.1768},{"site":"turborepo","path":"/docs/core-concepts","distance":0.1962}],"related":[{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/publishing-libraries","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"},{"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.1047},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1087},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1292},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1399},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1567}],"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/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/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"},{"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.0814},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.108},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1087},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.1191},{"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/structuring-a-repository","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"},{"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.1047},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1092},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1183},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1313},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1368}],"related":[{"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"},{"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.113},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.1352},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.1579},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1651},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.1764}],"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/guides/frameworks/nextjs","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/crafting-your-repository"},{"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.1349},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1363},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1405},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1413},{"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"},{"site":"vercel-web","path":"/blog/how-to-scale-a-large-codebase"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository"},{"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.1295},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.1764},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","distance":0.1916},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.2022},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2113}],"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/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/publishing-libraries","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"},{"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.0814},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1092},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1113},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.1363},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1399}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","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/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"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/package-and-task-graph"},{"site":"turborepo","path":"/docs/crafting-your-repository"},{"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/crafting-your-repository/creating-an-internal-package","distance":0.113},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1136},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.1295},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.137},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.1455}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","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/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":[{"site":"turborepo","path":"/docs/crafting-your-repository"}],"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.1648},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1674},{"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":[{"site":"turborepo","path":"/docs/crafting-your-repository"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/turbo-codemod","distance":0.1708},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1779},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2139},{"site":"turborepo","path":"/docs/support-policy","distance":0.2188},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2258}],"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/constructing-ci","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/crafting-your-repository"},{"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.1368},{"site":"turborepo","path":"/docs/reference/system-environment-variables","distance":0.1434},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1602},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.162}],"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/getting-started/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","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/crafting-your-repository"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository"},{"site":"turborepo","path":"/docs/getting-started/examples"},{"site":"turborepo","path":"/docs/getting-started/installation"}],"inbound":[],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1618},{"site":"turborepo","path":"/docs/getting-started/examples","distance":0.1927},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1963},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1971},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2049}],"related":[{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts","via":"neighbor"},{"site":"turborepo","path":"/docs/guides","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","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/getting-started"},{"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.108},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1113},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1124},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1136},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1183}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","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/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.2052},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","distance":0.2149},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.2242},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.242},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2426}],"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"},{"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.1006},{"site":"turborepo","path":"/docs/getting-started","distance":0.1927},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1952},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2258},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.2335}],"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/community","via":"neighbor"}]},{"site":"turborepo","path":"/docs/getting-started/installation","title":"Installation","summary":"Install Turborepo globally and in your repository.","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"},{"site":"turborepo","path":"/docs/support-policy"}],"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.1277},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.1486},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1508},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1718},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.176}],"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/guides/migrating-from-nx","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides","title":"Guides","summary":"Browse guides for frameworks, CI providers, tools, and common use cases in Turborepo.","outbound":[{"site":"turborepo","path":"/docs/guides/ai"},{"site":"turborepo","path":"/docs/guides/ci-vendors"},{"site":"turborepo","path":"/docs/guides/coordinating-runtime-dependencies"},{"site":"turborepo","path":"/docs/guides/frameworks"},{"site":"turborepo","path":"/docs/guides/generating-code"},{"site":"turborepo","path":"/docs/guides/handling-platforms"},{"site":"turborepo","path":"/docs/guides/multi-language"},{"site":"turborepo","path":"/docs/guides/publishing-libraries"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces"},{"site":"turborepo","path":"/docs/guides/skipping-tasks"},{"site":"turborepo","path":"/docs/guides/tools"}],"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.1317},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.1768},{"site":"turborepo","path":"/docs/guides/ai","distance":0.1933},{"site":"turborepo","path":"/docs/guides/frameworks","distance":0.2008},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2178}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/reference","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","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":[{"site":"turborepo","path":"/docs/guides"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs","distance":0.1855},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1907},{"site":"turborepo","path":"/docs/guides","distance":0.1933},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1953},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2055}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","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/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","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"},{"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"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"turborepo","path":"/docs/guides"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1445},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1534},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1573},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1589},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1784}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","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/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":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1743},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.1835},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.2043},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.2069},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.2164}],"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":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.0825},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.0842},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1464},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1534},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.158}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","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/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":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.1427},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1573},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1579},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.158},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1696}],"related":[{"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/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":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.0825},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.1},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1445},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1579},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.16}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","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/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":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.0842},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.1},{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.1589},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.168},{"site":"turborepo","path":"/docs/guides/ci-vendors/github-actions","distance":0.1696}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","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/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":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"requires":[{"site":"turborepo","path":"/docs/guides/ci-vendors"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors","distance":0.2026},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","distance":0.2164},{"site":"turborepo","path":"/docs/guides/ci-vendors/gitlab-ci","distance":0.2195},{"site":"turborepo","path":"/docs/guides/ci-vendors/travis-ci","distance":0.2219},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.2237}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"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-kb","path":"/kb/guide/migrate-a-tanstack-start-app-from-cloudflare-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","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":[{"site":"turborepo","path":"/docs/guides"}],"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.2659},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.278},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2791},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2899}],"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/crafting-your-repository/running-tasks","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/frameworks","title":"Frameworks","summary":"Browse guides for integrating popular frontend frameworks with Turborepo.","outbound":[{"site":"turborepo","path":"/docs/guides/frameworks/nextjs"},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt"},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit"},{"site":"turborepo","path":"/docs/guides/frameworks/vite"}],"inbound":[{"site":"turborepo","path":"/docs/guides"},{"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.2346},{"site":"turborepo","path":"/docs/guides/tools","distance":0.237},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.2621},{"site":"turborepo","path":"/docs/guides/frameworks/framework-bindings","distance":0.2669}],"related":[{"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/community","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.2786},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.2928},{"site":"turborepo","path":"/docs/crafting-your-repository/managing-dependencies","distance":0.3115},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.317}],"related":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js","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/transpilePackages","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","via":"requires"},{"site":"nextjs","path":"/docs/app/guides/lazy-loading","via":"neighbor"},{"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":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.143},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.1908},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2052},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2134},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2135}],"related":[{"site":"nextjs","path":"/docs/app/getting-started/installation","via":"neighbor"},{"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/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/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":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.143},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.1698},{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.2034},{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2412},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2456}],"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.1925},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.2188},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.222},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.2231},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2264}],"related":[{"site":"turborepo","path":"/docs/guides/frameworks/vite","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/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","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":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.1698},{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.1901},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.1908},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","distance":0.2369},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2482}],"related":[{"site":"eve","path":"/docs/guides/frontend/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/crafting-your-repository/creating-an-internal-package","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":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"requires":[{"site":"turborepo","path":"/docs/guides/frameworks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.1901},{"site":"turborepo","path":"/docs/guides/frameworks/rsbuild","distance":0.1925},{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.1948},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.2034},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","distance":0.2315}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","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/tools/vitest","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/guides"},{"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.133},{"site":"turborepo","path":"/docs/reference/generate","distance":0.1901},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2308},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2342},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2382}],"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/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","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":[{"site":"turborepo","path":"/docs/guides"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.2251},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2555},{"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.2776}],"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/quickstart","distance":0.1878},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","distance":0.2085},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2129},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.2179},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","distance":0.2222}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/local-development","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/configuration","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/vite","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/system-environment-variables","via":"inbound"}]},{"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.1294},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1455},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1476},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1639},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.17}],"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/constructing-ci","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/multi-language","title":"Multi-language support","summary":"Run JavaScript packages and experimental native Go modules in one task graph.","outbound":[{"site":"turborepo","path":"/docs/guides/tools/go"}],"inbound":[{"site":"turborepo","path":"/docs/guides"},{"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/guides/tools/go","distance":0.1462},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1806},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1999},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2174},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2206}],"related":[{"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/configuring-tasks","via":"requires"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","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"},{"site":"turborepo","path":"/docs/guides"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.1579},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1582},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1771},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.188},{"site":"turborepo","path":"/docs/guides/tools/typescript","distance":0.188}],"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/guides/single-package-workspaces","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/typescript","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/internal-packages","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/guides"},{"site":"turborepo","path":"/docs/messages/recursive-turbo-invocations"},{"site":"turborepo","path":"/docs/reference/run"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1124},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1372},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.141},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","distance":0.1413},{"site":"turborepo","path":"/docs","distance":0.1585}],"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/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","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/guides"},{"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.1909},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2035},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2164},{"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/configuration","via":"neighbor"}]},{"site":"turborepo","path":"/docs/guides/tools","title":"Tools","summary":"Browse guides for integrating popular development tools with Turborepo.","outbound":[{"site":"turborepo","path":"/docs/guides/tools/biome"},{"site":"turborepo","path":"/docs/guides/tools/docker"},{"site":"turborepo","path":"/docs/guides/tools/eslint"},{"site":"turborepo","path":"/docs/guides/tools/go"},{"site":"turborepo","path":"/docs/guides/tools/jest"},{"site":"turborepo","path":"/docs/guides/tools/oxc"},{"site":"turborepo","path":"/docs/guides/tools/prisma"},{"site":"turborepo","path":"/docs/guides/tools/rust"},{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui"},{"site":"turborepo","path":"/docs/guides/tools/storybook"},{"site":"turborepo","path":"/docs/guides/tools/typescript"},{"site":"turborepo","path":"/docs/guides/tools/vitest"}],"inbound":[{"site":"turborepo","path":"/docs/guides"}],"requires":[{"site":"turborepo","path":"/docs/guides"}],"neighbors":[{"site":"turborepo","path":"/docs/guides","distance":0.1317},{"site":"turborepo","path":"/docs/crafting-your-repository","distance":0.2135},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.222},{"site":"turborepo","path":"/docs/community","distance":0.2283},{"site":"turborepo","path":"/docs","distance":0.2284}],"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"},{"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.1945},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2481},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.252},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2661},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.2664}],"related":[{"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/running-tasks","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/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/guides/tools"},{"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.1822},{"site":"turborepo","path":"/docs/reference/prune","distance":0.2064},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.211},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2191},{"site":"turborepo","path":"/docs","distance":0.2254}],"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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/eslint-config-turbo","distance":0.1641},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.1736},{"site":"turborepo","path":"/docs/guides/tools/oxc","distance":0.1807},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1831},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1861}],"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/go","title":"Go (Experimental)","summary":"Discover go.work modules as Turborepo packages and run native Go tasks.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/guides/multi-language"},{"site":"turborepo","path":"/docs/guides/tools"},{"site":"turborepo","path":"/docs/support-policy"}],"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.1413},{"site":"turborepo","path":"/docs/guides/multi-language","distance":0.1462},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1757},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.177},{"site":"turborepo","path":"/docs/guides/tools/python","distance":0.1839}],"related":[{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/multi-language","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/guides/tools/python","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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.1718},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1977},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.2046},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2199},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.224}],"related":[{"site":"turborepo","path":"/docs/guides/tools/vitest","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/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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1807},{"site":"turborepo","path":"/docs/guides/tools/biome","distance":0.1945},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1996},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2039},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2194}],"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.2265},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2324},{"site":"turborepo","path":"/docs/guides/tools/vitest","distance":0.239},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2417},{"site":"turborepo","path":"/docs/guides/tools/jest","distance":0.2417}],"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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/docker","distance":0.2896},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2927},{"site":"turborepo","path":"/docs","distance":0.2982},{"site":"turborepo","path":"/docs/guides/tools","distance":0.3149},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3163}],"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/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/community","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","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/run"}],"inbound":[{"site":"turborepo","path":"/docs/support-policy"}],"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.151},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.1839},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.2002},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2021},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2138}],"related":[{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","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/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/run"}],"inbound":[{"site":"turborepo","path":"/docs/guides/tools"},{"site":"turborepo","path":"/docs/support-policy"}],"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/go","distance":0.1413},{"site":"turborepo","path":"/docs/guides/tools/python","distance":0.151},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1551},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.1701},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1857}],"related":[{"site":"turborepo","path":"/docs/guides/tools/go","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/python","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/guides/single-package-workspaces","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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.235},{"site":"turborepo","path":"/docs/guides/frameworks/nextjs","distance":0.3098},{"site":"turborepo","path":"/docs/guides/tools","distance":0.3152},{"site":"turborepo","path":"/docs/guides/frameworks/nuxt","distance":0.3166},{"site":"turborepo","path":"/docs/guides/frameworks/sveltekit","distance":0.3338}],"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/managing-dependencies","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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/tailwind","distance":0.2139},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2549},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.2577},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.2604},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.2619}],"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/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/publishing-libraries","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.2039},{"site":"turborepo","path":"/docs/guides/tools/storybook","distance":0.2139},{"site":"nextjs","path":"/docs/app/guides/tailwind-v3-css","distance":0.2149},{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui","distance":0.235},{"site":"turborepo","path":"/docs/crafting-your-repository/creating-an-internal-package","distance":0.236}],"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"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js"}],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/internal-packages"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository"},{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/guides/tools"}],"neighbors":[{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1669},{"site":"turborepo","path":"/docs/guides/publishing-libraries","distance":0.188},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.1885},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.192},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1929}],"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/crafting-your-repository/creating-an-internal-package","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":[{"site":"turborepo","path":"/docs/guides/tools"}],"requires":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/tools/jest","distance":0.1718},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.1776},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.1805},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.1827},{"site":"turborepo","path":"/docs/guides/frameworks/vite","distance":0.1948}],"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/constructing-ci","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.3094},{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.3176},{"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.2471},{"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.2711},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.3203}],"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.2407},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2845}],"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.2554},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2653}],"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/openapi","title":"Remote Cache API","summary":"OpenAPI specification for self-hosted Remote Cache servers.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching"}],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.1873},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.2968},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.3041},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","distance":0.3277},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.3304}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"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":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts","title":"Artifacts","summary":"Endpoints for managing cache artifacts.","outbound":[],"inbound":[],"requires":[{"site":"turborepo","path":"/docs/openapi"}],"neighbors":[{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","distance":0.2736},{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","distance":0.2855},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","distance":0.2907},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.3322},{"site":"turborepo","path":"/docs/openapi","distance":0.3369}],"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/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","title":"Check if artifact exists","summary":"Check that a cache artifact with the given `hash` exists. This request returns response headers only and is equivalent to a `GET` request to this endpoint where the response contains no body.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.2515},{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","distance":0.2824},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","distance":0.2877},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","distance":0.3053},{"site":"turborepo","path":"/docs/openapi/artifacts","distance":0.3689}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"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":"turborepo","path":"/docs/openapi/artifacts/download-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/check-if-a-manifest-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/status","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","title":"Query artifact information","summary":"Query information about multiple artifacts by their hashes. Returns metadata about each artifact including size, task duration, and tag.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","distance":0.2706},{"site":"turborepo","path":"/docs/openapi/artifacts","distance":0.2736},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","distance":0.2768},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","distance":0.2877},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.3224}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/artifact_query","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/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/status","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","title":"Download a cache artifact","summary":"Downloads a cache artifact identified by its `hash` specified on the request path. The artifact is downloaded as an octet-stream (binary data).","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","distance":0.0985},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.261},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","distance":0.2706},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","distance":0.2824},{"site":"turborepo","path":"/docs/openapi/artifacts","distance":0.2855}],"related":[{"site":"turborepo","path":"/docs/openapi/artifacts/upload-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/upload-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/status","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","title":"Record cache usage events","summary":"Records cache usage analytics events. The body of this request is an array of cache usage events.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","distance":0.2554},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/record_events","distance":0.3239},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","distance":0.3433},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","distance":0.3534},{"site":"turborepo","path":"/docs/openapi/artifacts/status","distance":0.3674}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/record_events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","via":"neighbor"},{"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":"turborepo","path":"/docs/openapi/artifacts/artifact-query","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/status","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts/status","title":"Get remote caching status","summary":"Check the status of Remote Caching for the authenticated user or team. Returns a JSON-encoded status indicating if Remote Caching is enabled, disabled, or disabled due to usage limits.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/get_remote_cache_status","distance":0.2911},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","distance":0.3005},{"site":"turborepo","path":"/docs/openapi","distance":0.3445},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","distance":0.3674},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","distance":0.3767}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/get_remote_cache_status","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/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","via":"neighbor"}]},{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","title":"Upload a cache artifact","summary":"Uploads a cache artifact identified by the `hash` specified on the path. The cache artifact can then be downloaded with the provided `hash`.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","distance":0.0985},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","distance":0.2768},{"site":"turborepo","path":"/docs/openapi/artifacts","distance":0.2907},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","distance":0.3002},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","distance":0.3053}],"related":[{"site":"turborepo","path":"/docs/openapi/artifacts/download-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_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/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-exists","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts/status","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/bin"},{"site":"turborepo","path":"/docs/reference/boundaries"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/create-turbo"},{"site":"turborepo","path":"/docs/reference/docs"},{"site":"turborepo","path":"/docs/reference/eslint-config-turbo"},{"site":"turborepo","path":"/docs/reference/generate"},{"site":"turborepo","path":"/docs/reference/globs"},{"site":"turborepo","path":"/docs/reference/link"},{"site":"turborepo","path":"/docs/reference/login"},{"site":"turborepo","path":"/docs/reference/logout"},{"site":"turborepo","path":"/docs/reference/ls"},{"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/scan"},{"site":"turborepo","path":"/docs/reference/system-environment-variables"},{"site":"turborepo","path":"/docs/reference/telemetry"},{"site":"turborepo","path":"/docs/reference/turbo-gen"},{"site":"turborepo","path":"/docs/reference/turbo-ignore"},{"site":"turborepo","path":"/docs/reference/unlink"},{"site":"turborepo","path":"/docs/reference/watch"}],"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.1787},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1935},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.1951},{"site":"turborepo","path":"/docs/reference/info","distance":0.1954}],"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/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","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":[{"site":"turborepo","path":"/docs/reference"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/info","distance":0.2866},{"site":"turborepo","path":"/docs/reference","distance":0.3098},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3136},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.3729},{"site":"turborepo","path":"/docs/reference/docs","distance":0.373}],"related":[{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/docs","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/unlink","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/scan","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"},{"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.3055},{"site":"turborepo","path":"/docs/support-policy","distance":0.3146},{"site":"turborepo","path":"/docs/reference","distance":0.3243},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.3418},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.3428}],"related":[{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/ls","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/query"},{"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"},{"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.1925},{"site":"turborepo","path":"/docs/guides/tools/rust","distance":0.2238},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.2245},{"site":"turborepo","path":"/docs/reference/query","distance":0.2276},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.234}],"related":[{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/skipping-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","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/reference"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/getting-started/examples","distance":0.1006},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.1486},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.194},{"site":"turborepo","path":"/docs/getting-started","distance":0.2049},{"site":"turborepo","path":"/docs/reference","distance":0.2111}],"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/add-to-existing-repository","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","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/getting-started/installation","distance":0.3407}],"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/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools","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":[{"site":"turborepo","path":"/docs/reference"}],"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/guides/ai","distance":0.3143},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3205},{"site":"turborepo","path":"/docs/support-policy","distance":0.3251}],"related":[{"site":"turborepo","path":"/docs/reference/info","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ai","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","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/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/reference"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/eslint-plugin-turbo","distance":0.0123},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1641},{"site":"turborepo","path":"/docs/getting-started/editor-integration","distance":0.2149},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2409},{"site":"turborepo","path":"/docs/reference","distance":0.2433}],"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/reference/turbo-codemod","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.0123},{"site":"turborepo","path":"/docs/guides/tools/eslint","distance":0.1736},{"site":"turborepo","path":"/docs/getting-started/editor-integration","distance":0.2242},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2484},{"site":"turborepo","path":"/docs/reference","distance":0.2571}],"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/reference/turbo-codemod","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"},{"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.1901},{"site":"turborepo","path":"/docs/reference/turbo-gen","distance":0.2007},{"site":"turborepo","path":"/docs/reference/create-turbo","distance":0.2882},{"site":"turborepo","path":"/docs/reference","distance":0.3138},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3365}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-gen","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/create-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","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/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"},{"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.37},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.3745}],"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/tools/go","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.2866},{"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":[{"site":"turborepo","path":"/docs/reference"}],"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.3281},{"site":"vercel-docs","path":"/docs/cli/link","distance":0.3338}],"related":[{"site":"vercel-docs","path":"/docs/cli/link","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","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/scan","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":[{"site":"turborepo","path":"/docs/reference"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/logout","distance":0.2809},{"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/cli/login","distance":0.3841}],"related":[{"site":"vercel-docs","path":"/docs/cli/login","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","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/logout","title":"logout","summary":"Reference for the `turbo logout` command that signs out of your Remote Cache provider.","outbound":[],"inbound":[{"site":"turborepo","path":"/docs/reference"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/login","distance":0.2809},{"site":"turborepo","path":"/docs/reference/unlink","distance":0.3041},{"site":"vercel-docs","path":"/docs/cli/logout","distance":0.3603},{"site":"turborepo","path":"/docs/reference/link","distance":0.3908},{"site":"turborepo","path":"/docs/reference","distance":0.3938}],"related":[{"site":"vercel-docs","path":"/docs/cli/logout","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/login","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/unlink","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/delete-an-authentication-token","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/link","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/scan","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":[{"site":"turborepo","path":"/docs/reference/run"}],"inbound":[{"site":"turborepo","path":"/docs/reference"},{"site":"turborepo","path":"/docs/support-policy"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.2267},{"site":"turborepo","path":"/docs/reference/query","distance":0.2301},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.2816},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.2905},{"site":"turborepo","path":"/docs/reference/info","distance":0.3026}],"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/crafting-your-repository/running-tasks","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.1385},{"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.2038},{"site":"turborepo","path":"/docs/reference/query","distance":0.22}],"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/guides/migrating-from-nx","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"},{"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.1191},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1647},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.1671},{"site":"turborepo","path":"/docs/crafting-your-repository/structuring-a-repository","distance":0.1718},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.1813}],"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/guides/migrating-from-nx","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/developing-applications","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","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"},{"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.2064},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.2344},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2704},{"site":"turborepo","path":"/docs/guides/single-package-workspaces","distance":0.2708},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.2726}],"related":[{"site":"turborepo","path":"/docs/guides/tools/go","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","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/reference/package-configurations","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/reference"},{"site":"turborepo","path":"/docs/reference/configuration"},{"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.1909},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.2026},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.206},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2074},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2155}],"related":[{"site":"turborepo","path":"/docs/guides/skipping-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/package-configurations","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","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/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/guides/single-package-workspaces"},{"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"},{"site":"turborepo","path":"/docs/reference/configuration"},{"site":"turborepo","path":"/docs/reference/ls"},{"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.1925},{"site":"turborepo","path":"/docs/reference/query","distance":0.2176},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.2318},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.244},{"site":"turborepo","path":"/docs/reference/package-configurations","distance":0.2591}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/rust","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/options-overview","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","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/reference"},{"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.2662},{"site":"turborepo","path":"/docs/reference/turbo-ignore","distance":0.2813},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","distance":0.3043},{"site":"turborepo","path":"/docs/getting-started/installation","distance":0.3077}],"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/getting-started/installation","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/go","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.1385},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.1434},{"site":"turborepo","path":"/docs/reference","distance":0.221},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.2298},{"site":"turborepo","path":"/docs/support-policy","distance":0.2303}],"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/crafting-your-repository/configuring-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","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":[{"site":"turborepo","path":"/docs/reference"}],"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.3},{"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":"eve","path":"/docs/reference/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.1708},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2184},{"site":"turborepo","path":"/docs/reference","distance":0.2374},{"site":"turborepo","path":"/docs/getting-started/add-to-existing-repository","distance":0.2375},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2378}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/upgrading","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","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/reference/package-configurations","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"},{"site":"turborepo","path":"/docs/reference"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/guides/generating-code","distance":0.133},{"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.2783},{"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/reference"},{"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.235},{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","distance":0.2443},{"site":"turborepo","path":"/docs/reference","distance":0.2457},{"site":"turborepo","path":"/docs/support-policy","distance":0.2562}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"turborepo","path":"/docs/support-policy","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/getting-started/installation","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":[{"site":"turborepo","path":"/docs/reference"}],"requires":[{"site":"turborepo","path":"/docs/reference"}],"neighbors":[{"site":"turborepo","path":"/docs/reference/link","distance":0.2415},{"site":"turborepo","path":"/docs/reference/logout","distance":0.3041},{"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/link","via":"neighbor"},{"site":"turborepo","path":"/docs/reference/logout","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/reference"},{"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.2789},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.3077},{"site":"turborepo","path":"/docs/crafting-your-repository/configuring-tasks","distance":0.3176},{"site":"turborepo","path":"/docs/reference/configuration","distance":0.3283}],"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/guides/tools/go","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/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/guides/tools/go"},{"site":"turborepo","path":"/docs/guides/tools/python"},{"site":"turborepo","path":"/docs/guides/tools/rust"},{"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":[{"site":"turborepo","path":"/docs/getting-started/installation"}],"requires":[{"site":"turborepo","path":"/docs"}],"neighbors":[{"site":"turborepo","path":"/docs/reference","distance":0.1787},{"site":"turborepo","path":"/docs/guides/tools/go","distance":0.1958},{"site":"turborepo","path":"/docs/reference/options-overview","distance":0.2038},{"site":"turborepo","path":"/docs/guides/migrating-from-nx","distance":0.2141},{"site":"turborepo","path":"/docs/crafting-your-repository/using-environment-variables","distance":0.2183}],"related":[{"site":"turborepo","path":"/docs/reference/options-overview","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/crafting-your-repository/upgrading","via":"neighbor"},{"site":"turborepo","path":"/docs/getting-started/installation","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.2018},{"site":"turborepo","path":"/docs/reference","distance":0.2963},{"site":"eve","path":"/docs/reference/telemetry","distance":0.3129}],"related":[{"site":"vercel-docs","path":"/docs/cli/about-telemetry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/telemetry","via":"neighbor"},{"site":"eve","path":"/docs/reference/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/system-environment-variables","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","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":[{"site":"v0","path":"/docs/faqs"},{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/text-prompting"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-purchases"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/agentic-features","distance":0.1209},{"site":"v0","path":"/docs/full-stack-apps","distance":0.1222},{"site":"v0","path":"/docs/faqs","distance":0.1267},{"site":"v0","path":"/docs/api/v1","distance":0.1328},{"site":"v0","path":"/docs/quickstart","distance":0.1344}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-purchases","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-web","path":"/blog/transforming-how-you-work-with-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-app","via":"neighbor"}]},{"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"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0"}],"inbound":[{"site":"v0","path":"/docs/agentic-features"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.1241},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.1348},{"site":"v0","path":"/docs/agentic-features","distance":0.1991},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.2133},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","distance":0.2249}],"related":[{"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/mcp/integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","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/integrating-v0-into-agents","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/account","title":"Account","summary":"Manage your account and billing information.","outbound":[{"site":"v0","path":"/docs/chatgpt"},{"site":"v0","path":"/docs/pricing"},{"site":"v0","path":"/docs/teams"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/usage-dashboard","distance":0.2037},{"site":"v0","path":"/docs/pricing","distance":0.2145},{"site":"v0","path":"/docs/teams","distance":0.2255},{"site":"v0","path":"/docs/chatgpt","distance":0.2408},{"site":"v0","path":"/docs/quickstart","distance":0.2627}],"related":[{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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/quickstart"},{"site":"v0","path":"/docs/sandbox"},{"site":"v0","path":"/docs/terminal-commands"}],"inbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/terminal-commands"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs","distance":0.1209},{"site":"v0","path":"/docs/api/v1","distance":0.1635},{"site":"v0","path":"/docs/full-stack-apps","distance":0.172},{"site":"v0","path":"/docs/quickstart","distance":0.174},{"site":"v0","path":"/docs/api/v2","distance":0.1823}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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"},{"site":"v0","path":"/docs/model-picker"},{"site":"v0","path":"/docs/quickstart"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.2313},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2324},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.2433},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.2434},{"site":"v0","path":"/docs/agentic-features","distance":0.2499}],"related":[{"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":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","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":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","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/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"}]},{"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/api/v2","distance":0.1236},{"site":"v0","path":"/docs/quickstart","distance":0.1288},{"site":"v0","path":"/docs","distance":0.1328},{"site":"v0","path":"/docs/api/v1/quickstart","distance":0.1476},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1479}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","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/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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.0606},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.0779},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.186},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1903},{"site":"v0","path":"/docs/api/v1","distance":0.2019}],"related":[{"site":"ai-sdk","path":"/docs/foundations/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":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/overview","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.0981},{"site":"v0","path":"/docs/MCP","distance":0.1241},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.1723},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.1909},{"site":"vercel-docs","path":"/docs/mcp","distance":0.21}],"related":[{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","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/v2/guides/mcp-server","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/create","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","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/packages/ai-tools","distance":0.0688},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.0779},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.1762},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.1868},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1893}],"related":[{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","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.1969},{"site":"v0","path":"/docs/full-stack-apps","distance":0.1974},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.2055},{"site":"v0","path":"/docs/quickstart","distance":0.2252},{"site":"v0","path":"/docs/api/v2","distance":0.2316}],"related":[{"site":"vercel-web","path":"/blog/how-to-prompt-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/maximizing-outputs-with-v0-from-ui-generation-to-code-creation","via":"neighbor"},{"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/v1/examples/v0-clone","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.1127},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2081},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/streaming-react-components","distance":0.221},{"site":"ai-sdk","path":"/cookbook/rsc/stream-updates-to-visual-interfaces","distance":0.2392},{"site":"v0","path":"/docs/api/v1","distance":0.2467}],"related":[{"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/getting-started/navigating-the-library","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/rendering-ui-with-language-models","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/rsc/render-visual-interface-in-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","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.1941},{"site":"v0","path":"/docs/api/v1","distance":0.1994},{"site":"v0","path":"/docs/faqs","distance":0.1997},{"site":"v0","path":"/docs","distance":0.2057},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","distance":0.2132}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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/api/v1/packages/create-v0-sdk-app","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v1/guides/capturing-preview-console-logs","title":"Capturing Preview Console Logs","summary":"Capture client and emulated server console output from an API v1 preview iframe","outbound":[{"site":"v0","path":"/docs/api/v1/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.2383},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.3083},{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.3314},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.3352},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.3427}],"related":[{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/render-visual-interface-in-chat","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/overview","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/logging","via":"neighbor"},{"site":"nextjs","path":"/docs/app/getting-started/linking-and-navigating","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/code-editing","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":"v0","path":"/docs/api/v1/packages/react","distance":0.2886},{"site":"chat-sdk","path":"/docs/contributing/building","distance":0.3027},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","distance":0.3155},{"site":"chat-sdk","path":"/docs/api/message","distance":0.3298},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","distance":0.3363}],"related":[{"site":"chat-sdk","path":"/docs/contributing/building","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-rsc/migrating-to-ui","via":"neighbor"},{"site":"chat-sdk","path":"/docs/posting-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-tool-usage","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/postable-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-pages-router","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","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.1018},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1542},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1712},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1889},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.2146}],"related":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/environment-variables","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/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/update-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","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.2121},{"site":"v0","path":"/docs/vercel-integration","distance":0.257},{"site":"v0","path":"/docs/quickstart","distance":0.2577},{"site":"v0","path":"/docs/MCP","distance":0.2613}],"related":[{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","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/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/MCP","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.2549},{"site":"v0","path":"/docs/api/v1","distance":0.3312},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.3391},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.3482}],"related":[{"site":"v0","path":"/docs/api/v1/guides/locking-files-from-ai-changes","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","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.255},{"site":"v0","path":"/docs/api/v1","distance":0.3312},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.3391},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.3483}],"related":[{"site":"v0","path":"/docs/api/v1/guides/lock-files-from-ai-changes","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","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.1207},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1309},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.1469},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.1723},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1969}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create-oauth-authorization-url","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-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","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/reference/chats/init","distance":0.1626},{"site":"v0","path":"/docs/api/v1","distance":0.1805},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.1987},{"site":"v0","path":"/docs/api/v1/quickstart","distance":0.2008},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.2117}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","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.0606},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.0688},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.16},{"site":"v0","path":"/docs/api/v1","distance":0.1925},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","distance":0.1973}],"related":[{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/nodejs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/building-agents","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/call-tools-multiple-steps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","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/quickstart","distance":0.2049},{"site":"v0","path":"/docs/api/v2","distance":0.2107},{"site":"v0","path":"/docs/api/v1","distance":0.2178},{"site":"v0","path":"/docs/quickstart","distance":0.2221},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","distance":0.227}],"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":"vercel-web","path":"/blog/build-your-own-ai-app-builder-with-the-v0-platform-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","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.1127},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.1769},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","distance":0.1962},{"site":"v0","path":"/docs/api/v1","distance":0.2393},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.251}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"chat-sdk","path":"/docs/cards","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","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/v1/examples/classic-v0","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/quickstart","distance":0.1339},{"site":"v0","path":"/docs/api/v1","distance":0.1552},{"site":"v0","path":"/docs/api/v2","distance":0.191},{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.1962},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","distance":0.2132}],"related":[{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","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/guides/capturing-preview-console-logs"},{"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.1308},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","distance":0.1339},{"site":"v0","path":"/docs/api/v1","distance":0.1476},{"site":"v0","path":"/docs/api/v2","distance":0.1481},{"site":"v0","path":"/docs/quickstart","distance":0.167}],"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.0457},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.0565},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.0792},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1065},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1194}],"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/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","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.0505},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.181},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2291},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2649},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.279}],"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/chats/get-by-id","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.1685},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","distance":0.181},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1832},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.2031},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","distance":0.2235}],"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/v2/reference/chats/get-chat-files","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.1451},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.156},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.2171},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.2271},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.2391}],"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/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/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.2336},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2643},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2762},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.2791},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.2946}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/find","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/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","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.1002},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1185},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.1272},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.1296},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1577}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","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-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","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.1026},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1296},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.135},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.155},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1681}],"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.088},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1272},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.135},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1686},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1951}],"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/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/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/create","distance":0.1722},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1787},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.1867},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.2016},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.2153}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-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","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/create","distance":0.0792},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.0932},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1043},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1074},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.1166}],"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/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","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.1026},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1166},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1428},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1568},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1597}],"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/send-message","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.088},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1195},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.1407},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.1428},{"site":"v0","path":"/docs/api/v1/reference/chats/download-version","distance":0.156}],"related":[{"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/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/download-version","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.0565},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.0932},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.103},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1222},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.161}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","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.1448},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.2368},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.2819},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","distance":0.3263},{"site":"v0","path":"/docs/api/v2/guides/handling-integrations","distance":0.3378}],"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/v1/guides/handling-integrations","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/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.1694},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.2035},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.2076},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.2267},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2301}],"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/get-by-id","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.1077},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.1468},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.239},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","distance":0.2714},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.3151}],"related":[{"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":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-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":"v0","path":"/docs/api/v1/reference/chats/stop-message","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-streaming","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.0457},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.103},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1043},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.116},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1291}],"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/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","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.0689},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.2803},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.3037},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.3092},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","distance":0.3117}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/stop-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","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.1074},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.1098},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.1194},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.1222},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1502}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","via":"neighbor"},{"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/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.1407},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1582},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.1636},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.1685},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.1948}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","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/v2/reference/chats/update-chat-files","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.135},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1518},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.153},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.2168},{"site":"v0","path":"/docs/deployments","distance":0.2488}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/create_deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","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/deployments","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/delete","title":"Delete Deployment","summary":"Delete a deployment by ID. This will delete the deployment from Vercel.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1418},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.1926},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2009},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.2023},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.2168}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/cancel_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/remove","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","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-logs","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.0907},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.153},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.1571},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.1638},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.2023}],"related":[{"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":"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/find-errors","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/get-by-id","distance":0.154},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.1638},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.1661},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.1926},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.2643}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","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":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","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.1571},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.1661},{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","distance":0.1737},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","distance":0.2452},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.2515}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","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":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","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/create","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.0907},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","distance":0.1418},{"site":"v0","path":"/docs/api/v1/reference/deployments/create","distance":0.1518},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-errors","distance":0.154},{"site":"v0","path":"/docs/api/v1/reference/deployments/find-logs","distance":0.1737}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/logs/get-logs-for-a-deployment","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/deployments/delete","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","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":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments","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-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.0717},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.1706},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.1758},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.2012},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2217}],"related":[{"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/v1/reference/hooks/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","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/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.057},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2145},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2622},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.2723},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.291}],"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":"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/create","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.1509},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","distance":0.1539},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.2012},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2022},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.2466}],"related":[{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","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":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","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":"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.0596},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.1509},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.1758},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.1765},{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","distance":0.2145}],"related":[{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","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":"workflow","path":"/docs/api-reference/workflow-api/get-hook-by-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/delete","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","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.0585},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.1706},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.1765},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2221},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.2372}],"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/api-reference/workflow/create-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/define-hook","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/v1/reference/projects/create","distance":0.111},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.1435},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","distance":0.1527},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.1909},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.191}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/assign","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.09},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.1527},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.1571},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1963},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.2066}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/find","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-projects-of-an-access-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/integrations/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/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.0902},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1306},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.1309},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create-oauth-authorization-url","distance":0.1351},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.1576}],"related":[{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","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/find","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.1207},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1351},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.2166},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.2466},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2607}],"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-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","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/update","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/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.0212},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2233},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.2257},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.257},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.2608}],"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/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/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.0576},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.0844},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1112},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1678},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1742}],"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/v1/reference/mcp-servers/update","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","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.0272},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","distance":0.0844},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.1061},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1476},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1576}],"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/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","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.0457},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1306},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.1476},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1708},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1724}],"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":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-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/mcp-servers/create-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.1738},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1925},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.2101},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.2136},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.2152}],"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/projects/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","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/integrations/create","distance":0.111},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1209},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.129},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.1403},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.1422}],"related":[{"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/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","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.1079},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1154},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.1466},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1542},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.1684}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","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":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","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":"vercel-docs","path":"/docs/rest-api/environment/create-one-or-more-shared-environment-variables","via":"neighbor"},{"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/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","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":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.2162},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.2171},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.2431},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.2505},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.2532}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/access-groups/delete-an-access-group-project","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/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","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/update-env-vars","distance":0.16},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1669},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1684},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.1868},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","distance":0.2581}],"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":"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/reference/projects/create-env-vars","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/disconnects-a-shared-environment-variable-for-a-given-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/edit-an-environment-variable","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.09},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.1246},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1422},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1498},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.1909}],"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/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","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.0689},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1154},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1195},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.1669},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1712}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","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/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","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":"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/agent-resources/vercel-mcp/tools/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.0658},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1209},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.1498},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1581},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1625}],"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/projects/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","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.0658},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.1246},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.129},{"site":"v0","path":"/docs/api/v1/reference/projects/update","distance":0.1523},{"site":"v0","path":"/docs/api/v1/reference/integrations/find","distance":0.1571}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","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.0689},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.1466},{"site":"v0","path":"/docs/api/v1/reference/projects/update-env-vars","distance":0.1551},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.1868},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.2146}],"related":[{"site":"v0","path":"/docs/api/v1/reference/projects/find-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/update-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/agent-resources/vercel-mcp/tools/environment-variables/get_project_env","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/retrieve-the-environment-variables-of-a-project-by-id-or-name","via":"neighbor"},{"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/retrieve-the-decrypted-value-of-a-shared-environment-variable-by-id","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.1403},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.1523},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1791},{"site":"v0","path":"/docs/api/v1/reference/projects/find","distance":0.2039},{"site":"v0","path":"/docs/api/v1/reference/projects/assign","distance":0.2101}],"related":[{"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/projects/find","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/assign","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.1079},{"site":"v0","path":"/docs/api/v1/reference/projects/find-env-vars","distance":0.1195},{"site":"v0","path":"/docs/api/v1/reference/projects/get-env-var","distance":0.1551},{"site":"v0","path":"/docs/api/v1/reference/projects/delete-env-vars","distance":0.16},{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1889}],"related":[{"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/delete-env-vars","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","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/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/projects/create-one-or-more-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/batch-remove-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/v1/reference/reports/get-usage","distance":0.2906},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.328},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.3329},{"site":"ai-sdk","path":"/docs/advanced/rate-limiting","distance":0.3415},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","distance":0.353}],"related":[{"site":"ai-sdk","path":"/docs/advanced/rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/limits","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-billing","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","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","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/v1/reference/reports/get-user-activity","distance":0.1635},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.1641},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.1951},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","distance":0.1956},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.2725}],"related":[{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","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":"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/v2/reference/usage/get-usage-activity","distance":0.1521},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1635},{"site":"v0","path":"/docs/usage-dashboard","distance":0.2385},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.2479},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.2878}],"related":[{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","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.2343},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.2878},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.2964},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.3186},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-id","distance":0.3202}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/user/get-the-user","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/get_auth_user","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","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/projects/get-by-id","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.218},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2693},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.2725},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.2964},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","distance":0.3015}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/rolling-release/get-rolling-release-billing-status","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_billing_charges","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-plan","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.3015},{"site":"v0","path":"/docs/api/v1/reference/user/get","distance":0.3413},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.3641},{"site":"v0","path":"/docs/api/v1/reference/user/get-scopes","distance":0.37},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.3889}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/integrations/list-integration-billing-plans","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/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/reports/get-usage","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.2343},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.305},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.321},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.3295},{"site":"v0","path":"/docs/api/v1/reference/rate-limits/find","distance":0.353}],"related":[{"site":"v0","path":"/docs/api/v1/reference/user/get","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","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/rate-limits/find","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.0839},{"site":"v0","path":"/docs/api/v1","distance":0.1236},{"site":"v0","path":"/docs/quickstart","distance":0.1267},{"site":"v0","path":"/docs","distance":0.1392},{"site":"v0","path":"/docs/full-stack-apps","distance":0.1424}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-your-own-ai-app-builder-with-the-v0-platform-api","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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/guides/design-mode"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url"},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts"},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts"},{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts"},{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts"}],"inbound":[{"site":"v0","path":"/docs/api/v2"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface"},{"site":"v0","path":"/docs/api/v2/guides/design-mode"},{"site":"v0","path":"/docs/api/v2/quickstart"},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts"},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts"},{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts"},{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/capturing-preview-console-logs","distance":0.2383},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","distance":0.2441},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2755},{"site":"v0","path":"/docs/api/v2/guides/design-mode","distance":0.2859},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","distance":0.3063}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"inbound"},{"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/draft-mode","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/capturing-preview-console-logs","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","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/design-mode"},{"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.1753},{"site":"v0","path":"/docs/api/v1/packages/react","distance":0.1769},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.1811},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","distance":0.1862}],"related":[{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/react","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/guides/design-mode","title":"Design Mode","summary":"Connect the visual preview editor with the browser SDK or submit headless design edits","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams"}],"inbound":[{"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/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/design-mode"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/design-mode","distance":0.1287},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2196},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.2859},{"site":"v0","path":"/docs/design-systems-2","distance":0.2989},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.3031}],"related":[{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/design-systems-2","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","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/guides/environment-variables"},{"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":[{"site":"v0","path":"/docs/design-systems-2"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/design-systems-2","distance":0.1143},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.3011},{"site":"v0","path":"/docs/design-mode","distance":0.3134},{"site":"eve","path":"/docs/skills","distance":0.3173},{"site":"v0","path":"/docs/api/v2/guides/design-mode","distance":0.3226}],"related":[{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","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":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","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-chat"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project"},{"site":"v0","path":"/docs/private-dependencies"},{"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/design-systems"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"},{"site":"v0","path":"/docs/design-systems-2"},{"site":"v0","path":"/docs/private-dependencies"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.1018},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.2241},{"site":"v0","path":"/docs/api/v1/reference/projects/create-env-vars","distance":0.2274},{"site":"v0","path":"/docs/projects","distance":0.2326},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.2389}],"related":[{"site":"v0","path":"/docs/api/v1/guides/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/projects","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","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.1933},{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","distance":0.2121},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.2377},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.2603},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.2607}],"related":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","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.1933},{"site":"v0","path":"/docs/MCP","distance":0.2249},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.2548},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.261}],"related":[{"site":"v0","path":"/docs/api/v1/guides/handling-integrations","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/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/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.1373},{"site":"v0","path":"/docs/api/v2","distance":0.1714},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","distance":0.186},{"site":"v0","path":"/docs/agentic-features","distance":0.1863},{"site":"v0","path":"/docs/api/v1/examples/ai-tools","distance":0.1868}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/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/v2/guides/mcp-server","title":"Use v0 from an MCP Client","summary":"Create, import, edit, and deploy apps and manage v0 resources from an MCP client","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat"},{"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.0981},{"site":"v0","path":"/docs/MCP","distance":0.1348},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.1373},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.1469},{"site":"v0","path":"/docs/api/v2","distance":0.1824}],"related":[{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/MCP","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/api/v1","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"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","distance":0.2153},{"site":"v0","path":"/docs/faqs","distance":0.243},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2496},{"site":"v0","path":"/docs/teams","distance":0.2506},{"site":"v0","path":"/docs/api/v1","distance":0.2611}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"inbound"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","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.1971},{"site":"v0","path":"/docs/enterprise","distance":0.2235},{"site":"v0","path":"/docs/vercel-integration","distance":0.2317},{"site":"v0","path":"/docs/faqs","distance":0.263},{"site":"v0","path":"/docs/api/v1","distance":0.2738}],"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/api/v1","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"},{"site":"v0","path":"/docs/api/v2/guides/design-mode"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/chats/resume","distance":0.1468},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.1551},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","distance":0.162},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.1753},{"site":"workflow","path":"/docs/ai/resumable-streams","distance":0.2177}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","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-ui/chatbot-message-persistence","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui/use-chat","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":"ai-sdk","path":"/docs/reference/ai-sdk-ui/websocket-chat-transport","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","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"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api"}],"requires":[{"site":"v0","path":"/docs/api/v2"}],"neighbors":[{"site":"v0","path":"/docs/api/v2","distance":0.0839},{"site":"v0","path":"/docs/quickstart","distance":0.1205},{"site":"v0","path":"/docs/api/v1/quickstart","distance":0.1308},{"site":"v0","path":"/docs/full-stack-apps","distance":0.1413},{"site":"v0","path":"/docs/api/v1","distance":0.1479}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"inbound"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","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/environment-variables"},{"site":"v0","path":"/docs/api/v2/guides/mcp-server"},{"site":"v0","path":"/docs/api/v2/guides/migrating-from-v1-to-v2"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.0915},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.1065},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","distance":0.1122},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1291},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.1351}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","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.0915},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.1288},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.1367},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1623},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.1697}],"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/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","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 UTF-8 or base64-encoded source files.","outbound":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat"}],"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.1366},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","distance":0.1415},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.161},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.1616},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","distance":0.1747}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","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-vercel-project","distance":0.1358},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.161},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1925},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-zip","distance":0.2004},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.2148}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","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-files","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/v2/reference/chats/create-chat-from-vercel-project","title":"Create Chat From Vercel Project","summary":"Creates a new chat from an existing Vercel project.","outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.0951},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1122},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.1358},{"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-async","distance":0.1772}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","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-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-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-vercel-project","distance":0.1775},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1803},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.1888},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","distance":0.2004},{"site":"v0","path":"/docs/api/v1/reference/chats/init","distance":0.2255}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","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","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-repository","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","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. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of sending the message again.","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.1351},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.1561},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.1697},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.1749},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","distance":0.1834}],"related":[{"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/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/resume-chat-stream","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/v2/reference/chats/create-chat-from-vercel-project","distance":0.0951},{"site":"v0","path":"/docs/api/v1/reference/integrations/create","distance":0.1435},{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1654},{"site":"v0","path":"/docs/api/v2/reference/chats/deploy-chat","distance":0.1905},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1995}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","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/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/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.0505},{"site":"v0","path":"/docs/api/v1/reference/chats/delete-version-files","distance":0.2031},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2435},{"site":"v0","path":"/docs/api/v2/reference/webhooks/delete-webhook","distance":0.2696},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.291}],"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/webhooks/delete-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","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.135},{"site":"v0","path":"/docs/api/v2/reference/chats/create-vercel-project","distance":0.1905},{"site":"v0","path":"/docs/api/v1/reference/deployments/find","distance":0.2126},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","distance":0.2229},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.2764}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/create","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/api/v2/reference/chats/create-chat-from-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","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.0998},{"site":"v0","path":"/docs/api/v1/reference/chats/download-version","distance":0.1451},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1892},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1899},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2262}],"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/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/get-by-id","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.2162},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","distance":0.2288},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","distance":0.2388},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","distance":0.2459},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.2505}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-vercel-project","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat","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/v1/reference/chats/get-by-id","distance":0.1249},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1337},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.1568},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.159},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.1606}],"related":[{"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/get-message","via":"neighbor"},{"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/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.0998},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.1697},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1722},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1747},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1862}],"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/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","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.3159},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.3166},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.3203},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.3251},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.3275}],"related":[{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","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/v2/reference/messages/resolve-task-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-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.2377},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.2554},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2571},{"site":"v0","path":"/docs/api/v1/reference/chats/get-message","distance":0.2848},{"site":"v0","path":"/docs/api/v1/reference/chats/find","distance":0.2851}],"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/v1/reference/chats/get-by-id","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/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.1002},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1337},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.1523},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","distance":0.1681},{"site":"v0","path":"/docs/api/v1/reference/chats/update","distance":0.1887}],"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/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update","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/get-message","distance":0.1158},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.1296},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.1389},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1579},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.181}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-message-persistence","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","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/v1/reference/chats/resume","distance":0.1077},{"site":"v0","path":"/docs/api/v2/guides/resuming-streams","distance":0.162},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.1834},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","distance":0.1839},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.2553}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/chatbot-resume-streams","via":"neighbor"},{"site":"ai-sdk","path":"/docs/troubleshooting/abort-breaks-resumable-streams","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/chats/create-chat-streaming","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/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","distance":0.1098},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.1636},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","distance":0.1849},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","distance":0.1992},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","distance":0.2276}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/list-chats","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-by-id","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","title":"Update Chat Files","summary":"Creates, updates, or deletes UTF-8 or base64-encoded files for a chat. Pass null to delete.","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.1421},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.1429},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.1494},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1725},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","distance":0.1755}],"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/messages/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-from-files","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 100 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.0902},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.1559},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.1635},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1724},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.178}],"related":[{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","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/v1/reference/mcp-servers/update","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/create-mcp-client","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.0212},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.2342},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2567},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.2591},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.2671}],"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":"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/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.0272},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.0956},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/find","distance":0.1112},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1635},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/update","distance":0.1708}],"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/update","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","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.0576},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.0956},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.1061},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1559},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/create","distance":0.1778}],"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-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","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.0457},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/create-mcp-server","distance":0.1827},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/get-mcp-server","distance":0.183},{"site":"v0","path":"/docs/api/v1/reference/mcp-servers/get-by-id","distance":0.2019},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","distance":0.2043}],"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/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/mcp-servers/list-mcp-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","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"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.0388},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.0596},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.0997},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","distance":0.1158},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.1494}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"inbound"},{"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/messages/resolve-task","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/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/messages/get-message","distance":0.0388},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.0722},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1132},{"site":"v0","path":"/docs/api/v2/reference/chats/restore-message","distance":0.1296},{"site":"v0","path":"/docs/api/v2/reference/chats/update-chat-files","distance":0.1429}],"related":[{"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/resolve-task","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","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.0857},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.0997},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.1011},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.1132},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.1308}],"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":"v0","path":"/docs/api/v2/reference/messages/list-messages","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","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/v2/reference/messages/resolve-task","distance":0.1308},{"site":"v0","path":"/docs/api/v1/reference/chats/resolve-task","distance":0.1448},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","distance":0.187},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.2602},{"site":"v0","path":"/docs/api/v2/guides/handling-agent-interactions","distance":0.2603}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/resolve-task","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","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. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of resolving the task again.","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.0878},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.1011},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.1667},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.1847},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-async","distance":0.187}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","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","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/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-async","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. Include designMode to apply element-scoped design edits; message may be omitted when edits are provided.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/design-mode"}],"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/get-message","distance":0.0596},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.0722},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task","distance":0.0857},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","distance":0.1082},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.116}],"related":[{"site":"v0","path":"/docs/api/v2/reference/messages/get-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":"v0","path":"/docs/api/v2/reference/messages/send-message-streaming","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","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. Include designMode to apply element-scoped design edits; message may be omitted when edits are provided. Returns immediately with the assistant message ID. Poll GET /chats/:chatId/messages/:messageId and check `finishReason` to detect completion.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/design-mode"}],"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.1288},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.1372},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.1895},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.199},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat","distance":0.2048}],"related":[{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-async","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","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/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. Include designMode to apply element-scoped design edits; message may be omitted when edits are provided. 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. If the stream disconnects before the final event, reconnect with `POST /chats/{chatId}/resume` instead of sending the message again.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/design-mode"}],"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.0878},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.1082},{"site":"v0","path":"/docs/api/v2/reference/chats/create-chat-streaming","distance":0.1561},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.1693},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.1703}],"related":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/resolve-task-streaming","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/streaming-data","via":"neighbor"},{"site":"eve","path":"/docs/guides/client/messages","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/get-message","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","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.0689},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","distance":0.3222},{"site":"v0","path":"/docs/api/v2/reference/messages/get-message","distance":0.3306},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message","distance":0.3338},{"site":"v0","path":"/docs/api/v1/reference/chats/send-message","distance":0.3343}],"related":[{"site":"v0","path":"/docs/api/v1/reference/chats/stop-message","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/messages/send-message-async","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/v1/reference/chats/send-message","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts","title":"Append Trusted Preview Hosts","summary":"Appends host patterns without replacing existing hosts. Returns 422 if any normalized pattern already exists or the resulting list exceeds 100 hosts. The entire request succeeds or fails together.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","distance":0.0841},{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","distance":0.1083},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","distance":0.1692},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.3638},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","distance":0.4497}],"related":[{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","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":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/capturing-preview-console-logs","via":"neighbor"}]},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","title":"Delete Trusted Preview Hosts","summary":"Deletes exact normalized host patterns. Returns 404 if any pattern is not configured. Wildcard coverage does not count as an exact match. The entire request succeeds or fails together.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts","distance":0.1692},{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","distance":0.1739},{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","distance":0.1798},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.4655},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.4897}],"related":[{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","via":"neighbor"},{"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/rest-api/global-config/delete-one-or-more-global-config-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/delete","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.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","distance":0.0585},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts","distance":0.1083},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","distance":0.1798},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.352},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","distance":0.371}],"related":[{"site":"v0","path":"/docs/api/v2/reference/settings/set-trusted-preview-hosts","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/capturing-preview-console-logs","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 team.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/accessing-previews"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","distance":0.0585},{"site":"v0","path":"/docs/api/v2/reference/settings/append-trusted-preview-hosts","distance":0.0841},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","distance":0.1739},{"site":"v0","path":"/docs/api/v2/guides/accessing-previews","distance":0.3655},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","distance":0.4446}],"related":[{"site":"v0","path":"/docs/api/v2/reference/settings/get-trusted-preview-hosts","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/settings/delete-trusted-preview-hosts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/preview-mode","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/get-preview-url","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/capturing-preview-console-logs","via":"neighbor"},{"site":"v0","path":"/docs/external-apis","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/v1/reference/reports/get-user-activity","distance":0.1521},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","distance":0.1718},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1951},{"site":"v0","path":"/docs/usage-dashboard","distance":0.2278},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","distance":0.2492}],"related":[{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","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","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.1641},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.1718},{"site":"v0","path":"/docs/api/v2/reference/usage/list-usage-events","distance":0.1821},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","distance":0.218},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.2479}],"related":[{"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/cli/usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/user/get-billing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","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.1821},{"site":"v0","path":"/docs/api/v1/reference/reports/get-usage","distance":0.1956},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2492},{"site":"v0","path":"/docs/usage-dashboard","distance":0.2644},{"site":"v0","path":"/docs/api/v2/reference/messages/list-messages","distance":0.3221}],"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/artifacts/record-an-artifacts-cache-usage-event","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/stream-object-record-token-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_user_events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/web-analytics/counts-custom-events","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/v2/reference/messages/list-messages","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":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.0717},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.187},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.2058},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","distance":0.2341},{"site":"v0","path":"/docs/api/v1/reference/hooks/update","distance":0.2372}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"inbound"},{"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/creates-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/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","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.057},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.2472},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","distance":0.2696},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2796},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","distance":0.2857}],"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":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/chats/delete-chat","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/delete","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.0596},{"site":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","distance":0.1665},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.183},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.187},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","distance":0.2022}],"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":"v0","path":"/docs/api/v2/reference/webhooks/list-webhooks","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":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-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/v1/reference/hooks/find","distance":0.1539},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.1665},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2243},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.2341},{"site":"v0","path":"/docs/api/v2/reference/webhooks/update-webhook","distance":0.2769}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/find","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/integrations/get_webhooks","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","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/rest-api/webhooks/creates-a-webhook","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","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/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.0585},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","distance":0.183},{"site":"v0","path":"/docs/api/v2/reference/webhooks/create-webhook","distance":0.2058},{"site":"v0","path":"/docs/api/v1/reference/hooks/get-by-id","distance":0.2309},{"site":"v0","path":"/docs/api/v1/reference/hooks/create","distance":0.2373}],"related":[{"site":"v0","path":"/docs/api/v1/reference/hooks/update","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/webhooks/get-webhook","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook","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/v1/reference/hooks/create","via":"neighbor"}]},{"site":"v0","path":"/docs/chatgpt","title":"ChatGPT","summary":"Connect your ChatGPT Plus or Pro subscription to build in v0 using your ChatGPT plan.","outbound":[],"inbound":[{"site":"v0","path":"/docs/account"},{"site":"v0","path":"/docs/pricing"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/pricing","distance":0.1879},{"site":"v0","path":"/docs/account","distance":0.2408},{"site":"v0","path":"/docs/usage-dashboard","distance":0.312},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.3256},{"site":"v0","path":"/docs/faqs","distance":0.3287}],"related":[{"site":"v0","path":"/docs/pricing","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"v0","path":"/docs/account","via":"neighbor"},{"site":"v0","path":"/docs/usage-dashboard","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"}]},{"site":"v0","path":"/docs/code-editing","title":"Code viewer","summary":"Browse and edit your code, review changes, and add comments as context for your next prompt.","outbound":[],"inbound":[{"site":"v0","path":"/docs/git-import"},{"site":"v0","path":"/docs/projects"},{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/sandbox"},{"site":"v0","path":"/docs/text-prompting"},{"site":"vercel-changelog","path":"/changelog/v0-now-includes-diff-view-to-review-code-changes"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/text-prompting","distance":0.2733},{"site":"v0","path":"/docs/design-mode","distance":0.3018},{"site":"v0","path":"/docs/quickstart","distance":0.3034},{"site":"v0","path":"/docs/sharing","distance":0.3263},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","distance":0.3484}],"related":[{"site":"vercel-changelog","path":"/changelog/v0-now-includes-diff-view-to-review-code-changes","via":"inbound"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/prompt-engineering","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/code-mode","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/sharing","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.1385},{"site":"v0","path":"/docs/compare/v0-vs-replit","distance":0.1749},{"site":"v0","path":"/docs","distance":0.1886},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.1988},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2132}],"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/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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.1385},{"site":"v0","path":"/docs/compare/v0-vs-replit","distance":0.1765},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.2223},{"site":"v0","path":"/docs","distance":0.2274},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2372}],"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-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","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.1881},{"site":"v0","path":"/docs/compare/v0-vs-base44","distance":0.1988},{"site":"v0","path":"/docs","distance":0.2007},{"site":"v0","path":"/docs/compare/v0-vs-bolt","distance":0.2223},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2232}],"related":[{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-bolt","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-replit","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":[{"site":"vercel-web","path":"/blog/what-you-need-to-know-about-vibe-coding"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/compare/v0-vs-base44","distance":0.1749},{"site":"v0","path":"/docs/compare/v0-vs-bolt","distance":0.1765},{"site":"v0","path":"/docs","distance":0.199},{"site":"v0","path":"/docs/faqs","distance":0.2194},{"site":"v0","path":"/docs/quickstart","distance":0.2238}],"related":[{"site":"vercel-web","path":"/blog/what-you-need-to-know-about-vibe-coding","via":"inbound"},{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-bolt","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","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"},{"site":"v0","path":"/docs/projects"},{"site":"v0","path":"/docs/quickstart"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/deployments","distance":0.2155},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2393},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.253},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2747},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.2771}],"related":[{"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-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/actions/add-custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"inbound"}]},{"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"},{"site":"v0","path":"/docs/quickstart"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/full-stack-apps","distance":0.222},{"site":"v0","path":"/docs/snowflake","distance":0.2419},{"site":"v0","path":"/docs/quickstart","distance":0.247},{"site":"v0","path":"/docs/ai-models","distance":0.2509},{"site":"v0","path":"/docs/MCP","distance":0.278}],"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/api/v1","via":"neighbor"}]},{"site":"v0","path":"/docs/deployments","title":"Deployments","summary":"Preview and publish v0 projects on Vercel, then manage domains, visibility, and production updates.","outbound":[{"site":"v0","path":"/docs/agentic-features"},{"site":"v0","path":"/docs/custom-domains"},{"site":"v0","path":"/docs/github"},{"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/github"},{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/text-prompting"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/github","distance":0.1632},{"site":"v0","path":"/docs/quickstart","distance":0.1782},{"site":"vercel-docs","path":"/docs/deployments","distance":0.179},{"site":"v0","path":"/docs/faqs","distance":0.182},{"site":"v0","path":"/docs/vercel-integration","distance":0.1857}],"related":[{"site":"vercel-docs","path":"/docs/deployments","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-docs","path":"/docs/projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","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/projects","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":[{"site":"v0","path":"/docs/api/v2/guides/design-mode"}],"inbound":[{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/text-prompting"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/design-mode","distance":0.1287},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","distance":0.2588},{"site":"v0","path":"/docs/design-systems-2","distance":0.2673},{"site":"v0","path":"/docs/text-prompting","distance":0.282},{"site":"v0","path":"/docs/quickstart","distance":0.2831}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"v0","path":"/docs/api/v2/guides/custom-chat-interface","via":"neighbor"},{"site":"v0","path":"/docs/design-systems-2","via":"neighbor"},{"site":"v0","path":"/docs/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","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":"v0","path":"/docs/api/v2/guides/design-systems"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables"},{"site":"v0","path":"/docs/private-dependencies"}],"inbound":[{"site":"v0","path":"/docs/api/v2/guides/design-systems"},{"site":"v0","path":"/docs/design-systems-legacy"},{"site":"v0","path":"/docs/private-dependencies"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v2/guides/design-systems","distance":0.1143},{"site":"v0","path":"/docs/faqs","distance":0.247},{"site":"v0","path":"/docs/quickstart","distance":0.2506},{"site":"v0","path":"/docs/teams","distance":0.2515},{"site":"v0","path":"/docs/text-prompting","distance":0.2618}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"inbound"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","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/text-prompting","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","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":"vercel-web","path":"/blog/ai-powered-prototyping-with-design-systems","distance":0.2384},{"site":"v0","path":"/docs/design-systems-2","distance":0.2975},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","distance":0.3035},{"site":"v0","path":"/docs","distance":0.3271},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","distance":0.3329}],"related":[{"site":"vercel-web","path":"/blog/ai-powered-prototyping-with-design-systems","via":"neighbor"},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/tools/shadcn-ui","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","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/model-picker"},{"site":"v0","path":"/docs/security"},{"site":"v0","path":"/docs/sharing"},{"site":"vercel-docs","path":"/docs/directory-sync"},{"site":"vercel-docs","path":"/docs/rbac/access-groups"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"inbound":[{"site":"v0","path":"/docs/model-picker"},{"site":"v0","path":"/docs/teams"},{"site":"v0","path":"/docs/vercel-integration"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.1236},{"site":"v0","path":"/docs/vercel-integration","distance":0.1645},{"site":"v0","path":"/docs/security","distance":0.2021},{"site":"v0","path":"/docs/api/v2/guides/organizations","distance":0.2235},{"site":"v0","path":"/docs/faqs","distance":0.2248}],"related":[{"site":"vercel-web","path":"/blog/v0-plans-for-teams","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/organizations","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/external-apis","title":"External APIs","summary":"Build full-stack applications by calling external APIs with environment variables.","outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/vercel-connect"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/guides/environment-variables","distance":0.2317},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","distance":0.2404},{"site":"v0","path":"/docs/ai-models","distance":0.3037},{"site":"v0","path":"/docs/api/v2","distance":0.3069},{"site":"v0","path":"/docs/vercel-connect","distance":0.3081}],"related":[{"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/ai-models","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","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/figma"},{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/vercel-integration"},{"site":"vercel-changelog","path":"/changelog/updates-to-terms-of-service-march-2026"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available"}],"inbound":[{"site":"v0","path":"/docs"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1143},{"site":"v0","path":"/docs","distance":0.1267},{"site":"v0","path":"/docs/vercel-integration","distance":0.1486},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","distance":0.15},{"site":"v0","path":"/docs/api/v1","distance":0.1623}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/transforming-how-you-work-with-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-plans-for-teams","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/deployments","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/faqs"},{"site":"v0","path":"/docs/screenshots"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.1881},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","distance":0.2484},{"site":"v0","path":"/docs/screenshots","distance":0.254},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2765},{"site":"v0","path":"/docs/quickstart","distance":0.2834}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"v0","path":"/docs/screenshots","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/paper","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","distance":0.1222},{"site":"v0","path":"/docs/text-prompting","distance":0.126},{"site":"v0","path":"/docs/quickstart","distance":0.1307},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1413},{"site":"v0","path":"/docs/api/v2","distance":0.1424}],"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":"Import from GitHub","summary":"Import an existing GitHub repository into v0, connect its Vercel project, and work from an isolated branch.","outbound":[{"site":"v0","path":"/docs/code-editing"},{"site":"v0","path":"/docs/github"}],"inbound":[{"site":"v0","path":"/docs/github"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/github","distance":0.1184},{"site":"v0","path":"/docs/slack","distance":0.2319},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","distance":0.244},{"site":"v0","path":"/docs/faqs","distance":0.2496},{"site":"v0","path":"/docs/deployments","distance":0.2526}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/github","title":"GitHub","summary":"Connect GitHub repositories to v0 and ship changes through branches, previews, pull requests, and CI.","outbound":[{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/git-import"},{"site":"v0","path":"/docs/vercel-integration"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"}],"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/git-import"},{"site":"v0","path":"/docs/projects"},{"site":"v0","path":"/docs/vercel-integration"},{"site":"vercel-web","path":"/blog/the-vercel-ai-accelerator-is-back-with-6-million-in-credits"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/git-import","distance":0.1184},{"site":"v0","path":"/docs/slack","distance":0.1627},{"site":"v0","path":"/docs/deployments","distance":0.1632},{"site":"v0","path":"/docs/faqs","distance":0.1803},{"site":"v0","path":"/docs/vercel-integration","distance":0.1901}],"related":[{"site":"vercel-web","path":"/blog/the-vercel-ai-accelerator-is-back-with-6-million-in-credits","via":"inbound"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/projects","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.1899},{"site":"chat-sdk","path":"/docs/files","distance":0.2763},{"site":"v0","path":"/docs/quickstart","distance":0.2828},{"site":"v0","path":"/docs/api/v1","distance":0.2852},{"site":"v0","path":"/docs/api/v1/guides/start-from-existing-code","distance":0.2885}],"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/api/v1/guides/start-from-existing-code","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/init","via":"neighbor"}]},{"site":"v0","path":"/docs/instructions","title":"Instructions","summary":"Create and apply custom instructions to guide v0's responses","outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/how-to-prompt-v0"}],"requires":[],"neighbors":[{"site":"eve","path":"/docs/instructions","distance":0.2361},{"site":"v0","path":"/docs/text-prompting","distance":0.2701},{"site":"v0","path":"/docs/quickstart","distance":0.2883},{"site":"v0","path":"/docs/full-stack-apps","distance":0.3186},{"site":"eve","path":"/docs/concepts/context-control","distance":0.3382}],"related":[{"site":"vercel-web","path":"/blog/how-to-prompt-v0","via":"inbound"},{"site":"eve","path":"/docs/instructions","via":"neighbor"},{"site":"eve","path":"/docs/concepts/context-control","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-core/default-instructions-middleware","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/prompts","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/agentic-features","via":"neighbor"}]},{"site":"v0","path":"/docs/model-picker","title":"Choosing models","summary":"Choose a model for your v0 chats, add models from AI Gateway, and customize supported model settings.","outbound":[{"site":"v0","path":"/docs/ai-models"},{"site":"v0","path":"/docs/enterprise"},{"site":"v0","path":"/docs/pricing"}],"inbound":[{"site":"v0","path":"/docs/enterprise"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/ai-models","distance":0.2758},{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","distance":0.2872},{"site":"v0","path":"/docs/pricing","distance":0.3207},{"site":"v0","path":"/docs/quickstart","distance":0.3306},{"site":"v0","path":"/docs/enterprise","distance":0.3324}],"related":[{"site":"ai-sdk","path":"/docs/getting-started/choosing-a-provider","via":"neighbor"},{"site":"ai-sdk","path":"/docs/introduction","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","via":"neighbor"},{"site":"eve","path":"/docs/guides/decide","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/chatgpt","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","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.2867},{"site":"v0","path":"/docs/screenshots","distance":0.347},{"site":"v0","path":"/docs/design-mode","distance":0.3537},{"site":"v0","path":"/docs/prototyping","distance":0.3547},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","distance":0.3639}],"related":[{"site":"v0","path":"/docs/figma","via":"neighbor"},{"site":"v0","path":"/docs/screenshots","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/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.2353},{"site":"v0","path":"/docs/text-prompting","distance":0.2899},{"site":"v0","path":"/docs/full-stack-apps","distance":0.301},{"site":"v0","path":"/docs/quickstart","distance":0.3129},{"site":"v0","path":"/docs/api/v1","distance":0.315}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/pages/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":[{"site":"v0","path":"/docs/security"}],"inbound":[{"site":"v0","path":"/docs/sandbox"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/agentic-features","distance":0.2073},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2512},{"site":"v0","path":"/docs/terminal-commands","distance":0.2571},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.2745},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","distance":0.2849}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","via":"neighbor"},{"site":"v0","path":"/docs/terminal-commands","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/integrating-v0-into-agents","via":"neighbor"},{"site":"v0","path":"/docs/ai-models","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":[{"site":"v0","path":"/docs/chatgpt"},{"site":"v0","path":"/docs/usage-dashboard"},{"site":"vercel-web","path":"/blog/how-to-prompt-v0"}],"inbound":[{"site":"v0","path":"/docs/account"},{"site":"v0","path":"/docs/model-picker"},{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/teams"},{"site":"v0","path":"/docs/usage-dashboard"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/chatgpt","distance":0.1879},{"site":"v0","path":"/docs/usage-dashboard","distance":0.1904},{"site":"vercel-web","path":"/blog/updated-v0-pricing","distance":0.2123},{"site":"v0","path":"/docs/account","distance":0.2145},{"site":"v0","path":"/docs/teams","distance":0.222}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-web","path":"/blog/updated-v0-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"v0","path":"/docs/account","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/api/v1","via":"neighbor"}]},{"site":"v0","path":"/docs/private-dependencies","title":"Private Dependencies","summary":"Install private npm packages in v0 by configuring NPM_TOKEN or NPM_RC as environment variables.","outbound":[{"site":"v0","path":"/docs/api/v2/guides/environment-variables"},{"site":"v0","path":"/docs/design-systems-2"},{"site":"v0","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/builds/build-features"},{"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/environment-variables"},{"site":"v0","path":"/docs/design-systems-2"},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent/private-dependencies","distance":0.1694},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","distance":0.1882},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","distance":0.2205},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","distance":0.2578},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-installs-private-packages-from-npm-and-custom-registries","distance":0.2755}],"related":[{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","via":"inbound"},{"site":"vercel-docs","path":"/docs/agent/private-dependencies","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-installs-private-packages-from-npm-and-custom-registries","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"v0","path":"/docs/security","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/v0-clone","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","via":"neighbor"},{"site":"v0","path":"/docs/slack","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"},{"site":"v0","path":"/docs/custom-domains"},{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/templates"},{"site":"v0","path":"/docs/vercel-integration"}],"inbound":[{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/vercel-integration"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/api/v1/reference/projects/create","distance":0.1651},{"site":"v0","path":"/docs/vercel-integration","distance":0.1902},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","distance":0.1918},{"site":"v0","path":"/docs/quickstart","distance":0.2039},{"site":"v0","path":"/docs/deployments","distance":0.2053}],"related":[{"site":"vercel-docs","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/create","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/get-by-chat-id","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/projects/find","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.2006},{"site":"v0","path":"/docs/full-stack-apps","distance":0.204},{"site":"v0","path":"/docs/text-prompting","distance":0.2349},{"site":"v0","path":"/docs/prd-design","distance":0.2353},{"site":"v0","path":"/docs/api/v1","distance":0.2388}],"related":[{"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/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/quickstart","title":"Quickstart","summary":"An overview of v0's features and workflows","outbound":[{"site":"v0","path":"/docs/ai-models"},{"site":"v0","path":"/docs/code-editing"},{"site":"v0","path":"/docs/custom-domains"},{"site":"v0","path":"/docs/databases"},{"site":"v0","path":"/docs/deployments"},{"site":"v0","path":"/docs/design-mode"},{"site":"v0","path":"/docs/external-apis"},{"site":"v0","path":"/docs/pricing"},{"site":"v0","path":"/docs/projects"},{"site":"v0","path":"/docs/teams"},{"site":"v0","path":"/docs/text-prompting"}],"inbound":[{"site":"v0","path":"/docs"},{"site":"v0","path":"/docs/agentic-features"},{"site":"v0","path":"/docs/faqs"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/faqs","distance":0.1143},{"site":"v0","path":"/docs/text-prompting","distance":0.1162},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.1205},{"site":"v0","path":"/docs/api/v2","distance":0.1267},{"site":"v0","path":"/docs/api/v1","distance":0.1288}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/faqs","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/full-stack-apps","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/code-editing"},{"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"},{"site":"v0","path":"/docs/private-dependencies"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox","distance":0.2125},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2167},{"site":"vercel-docs","path":"/docs/sandbox/concepts","distance":0.2242},{"site":"eve","path":"/docs/sandbox/vercel","distance":0.2308},{"site":"vercel-docs","path":"/docs/sandbox/quickstart","distance":0.2363}],"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":"eve","path":"/docs/sandbox/vercel","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/how-to-use-snapshots-for-faster-sandbox-startup","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/private-dependencies","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":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/images-and-videos","distance":0.1899},{"site":"v0","path":"/docs/figma","distance":0.254},{"site":"v0","path":"/docs/prototyping","distance":0.2663},{"site":"v0","path":"/docs/full-stack-apps","distance":0.2811},{"site":"v0","path":"/docs","distance":0.2861}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","via":"neighbor"},{"site":"v0","path":"/docs/images-and-videos","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/design-mode","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","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":[{"site":"v0","path":"/docs/enterprise"},{"site":"v0","path":"/docs/pre-installed-agents"}],"requires":[{"site":"v0","path":"/docs"}],"neighbors":[{"site":"v0","path":"/docs/enterprise","distance":0.2021},{"site":"v0","path":"/docs/faqs","distance":0.2419},{"site":"v0","path":"/docs/api/v1","distance":0.2546},{"site":"v0","path":"/docs","distance":0.2562},{"site":"v0","path":"/docs/vercel-integration","distance":0.2575}],"related":[{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-vibe-coding-securely","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","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.1968},{"site":"v0","path":"/docs/projects","distance":0.2442},{"site":"v0","path":"/docs/api/v1/reference/chats/create","distance":0.2442},{"site":"v0","path":"/docs/templates","distance":0.25},{"site":"v0","path":"/docs/quickstart","distance":0.2514}],"related":[{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/create","via":"neighbor"},{"site":"v0","path":"/docs/projects","via":"neighbor"},{"site":"v0","path":"/docs/templates","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","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":[{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify"}],"requires":[],"neighbors":[{"site":"vercel-shop","path":"/docs/getting-started/shopify-setup","distance":0.1745},{"site":"vercel-shop","path":"/docs/getting-started","distance":0.1801},{"site":"vercel-shop","path":"/docs","distance":0.2095},{"site":"vercel-shop","path":"/docs/reference/shop-config","distance":0.2137},{"site":"vercel-shop","path":"/docs/shopify","distance":0.2218}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","via":"inbound"},{"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","via":"neighbor"},{"site":"vercel-shop","path":"/docs/reference/shop-config","via":"neighbor"},{"site":"vercel-shop","path":"/docs/shopify","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/full-stack-apps","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","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":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/github","distance":0.1627},{"site":"v0","path":"/docs/faqs","distance":0.1817},{"site":"v0","path":"/docs/quickstart","distance":0.1922},{"site":"v0","path":"/docs/teams","distance":0.1953},{"site":"v0","path":"/docs/vercel-integration","distance":0.2017}],"related":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience","via":"inbound"},{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/slackbot","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/vercel-integration","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"},{"site":"vercel-web","path":"/blog/how-v0-authenticates-to-snowflake-without-exposing-the-users-oauth-token"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/build-and-deploy-data-applications-on-snowflake-with-v0","distance":0.1914},{"site":"v0","path":"/docs/databases","distance":0.2419},{"site":"v0","path":"/docs/quickstart","distance":0.2588},{"site":"v0","path":"/docs/vercel-integration","distance":0.2654},{"site":"v0","path":"/docs/teams","distance":0.2691}],"related":[{"site":"vercel-web","path":"/blog/how-v0-authenticates-to-snowflake-without-exposing-the-users-oauth-token","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"inbound"},{"site":"vercel-web","path":"/blog/build-and-deploy-data-applications-on-snowflake-with-v0","via":"neighbor"},{"site":"v0","path":"/docs/databases","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/enterprise","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":"v0","path":"/docs/usage-dashboard"},{"site":"vercel-docs","path":"/docs/rbac/access-roles"},{"site":"vercel-web","path":"/pricing"}],"inbound":[{"site":"v0","path":"/docs/account"},{"site":"v0","path":"/docs/quickstart"},{"site":"v0","path":"/docs/security"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/enterprise","distance":0.1236},{"site":"v0","path":"/docs/vercel-integration","distance":0.1507},{"site":"v0","path":"/docs/faqs","distance":0.172},{"site":"v0","path":"/docs/usage-dashboard","distance":0.1862},{"site":"v0","path":"/docs/slack","distance":0.1953}],"related":[{"site":"vercel-web","path":"/blog/v0-plans-for-teams","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/sharing","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/organizations","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":[{"site":"v0","path":"/docs/projects"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.2429},{"site":"v0","path":"/docs/sharing","distance":0.25},{"site":"v0","path":"/docs/api/v1","distance":0.2591},{"site":"v0","path":"/docs/api/v2","distance":0.2787},{"site":"v0","path":"/docs/projects","distance":0.2805}],"related":[{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/sharing","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs/api/v2","via":"neighbor"},{"site":"v0","path":"/docs/projects","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":"v0","path":"/docs/agentic-features"},{"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.1889},{"site":"v0","path":"/docs/slack","distance":0.2481},{"site":"v0","path":"/docs/pre-installed-agents","distance":0.2571},{"site":"v0","path":"/docs/faqs","distance":0.2595},{"site":"v0","path":"/docs/sandbox","distance":0.2618}],"related":[{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/pre-installed-agents","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/sandbox","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","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":[{"site":"v0","path":"/docs"},{"site":"v0","path":"/docs/quickstart"},{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/quickstart","distance":0.1162},{"site":"v0","path":"/docs/full-stack-apps","distance":0.126},{"site":"vercel-web","path":"/blog/how-to-prompt-v0","distance":0.1568},{"site":"v0","path":"/docs","distance":0.1698},{"site":"v0","path":"/docs/api/v2/quickstart","distance":0.186}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-prototype-a-storefront-section-in-v0","via":"inbound"},{"site":"vercel-web","path":"/blog/how-to-prompt-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/maximizing-outputs-with-v0-from-ui-generation-to-code-creation","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","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/api/v1/examples/classic-v0","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","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":[{"site":"v0","path":"/docs/pricing"}],"inbound":[{"site":"v0","path":"/docs/pricing"},{"site":"v0","path":"/docs/teams"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/teams","distance":0.1862},{"site":"v0","path":"/docs/pricing","distance":0.1904},{"site":"v0","path":"/docs/account","distance":0.2037},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-activity","distance":0.2278},{"site":"v0","path":"/docs/api/v1/reference/reports/get-user-activity","distance":0.2385}],"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/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/api/v1/reference/reports/get-user-activity","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/reference/usage/get-usage-summary","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"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","distance":0.1662},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1686},{"site":"vercel-docs","path":"/docs/connect","distance":0.1708},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","distance":0.1715},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1836}],"related":[{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","via":"inbound"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"v0","path":"/docs/vercel-integration","via":"neighbor"},{"site":"v0","path":"/docs/slack","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"}]},{"site":"v0","path":"/docs/vercel-integration","title":"Vercel Integration","summary":"How v0 and Vercel work in tandem.","outbound":[{"site":"v0","path":"/docs/enterprise"},{"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":[{"site":"v0","path":"/docs/faqs"},{"site":"v0","path":"/docs/github"},{"site":"v0","path":"/docs/projects"}],"requires":[],"neighbors":[{"site":"v0","path":"/docs/faqs","distance":0.1486},{"site":"v0","path":"/docs/teams","distance":0.1507},{"site":"v0","path":"/docs/enterprise","distance":0.1645},{"site":"v0","path":"/docs/deployments","distance":0.1857},{"site":"v0","path":"/docs/quickstart","distance":0.1885}],"related":[{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"v0","path":"/docs/deployments","via":"neighbor"},{"site":"v0","path":"/docs/quickstart","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"}]},{"site":"v0","path":"/docs/versions","title":"Versions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/docs/migration-guides/versioning","distance":0.2966},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","distance":0.3024},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","distance":0.3094},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","distance":0.3318},{"site":"v0","path":"/docs/prototyping","distance":0.3353}],"related":[{"site":"ai-sdk","path":"/docs/migration-guides/versioning","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/get-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/update-version","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/reference/chats/find-versions","via":"neighbor"},{"site":"v0","path":"/docs/prototyping","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/10x-more-capacity-for-laguna-s-2-1-on-ai-gateway","title":"10x more capacity for Laguna S 2.1 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","distance":0.1032},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2752},{"site":"vercel-changelog","path":"/changelog/sakana-fugu-ultra-now-available-on-ai-gateway","distance":0.2836},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.2871},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.2886}],"related":[{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sakana-fugu-ultra-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/16x-larger-environment-variable-storage-up-to-64kb","title":"16x larger Environment Variable storage up to 64KB","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2569},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2674},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.286},{"site":"vercel-changelog","path":"/changelog/more-flexible-environment-variables-in-edge-functions-and-middleware","distance":0.29},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","distance":0.2907}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-flexible-environment-variables-in-edge-functions-and-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/2024-01-account-changes","title":"Easier transitions between hobby and pro","summary":null,"outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/plans/hobby"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2541},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","distance":0.2848},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","distance":0.2936},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2949},{"site":"vercel-web","path":"/blog/simpler-pricing","distance":0.2993}],"related":[{"site":"vercel-docs","path":"/docs/plans/hobby","via":"inbound"},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-started-faster-with-the-new-project-creation-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","title":"Two-Factor Authentication (2FA) is now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/two-factor-authentication"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/two-factor-authentication","distance":0.1874},{"site":"vercel-changelog","path":"/changelog/2fa-team-enforcement","distance":0.2171},{"site":"vercel-changelog","path":"/changelog/login-with-passkey-is-now-supported","distance":0.259},{"site":"vercel-docs","path":"/docs/two-factor-enforcement","distance":0.2639},{"site":"vercel-changelog","path":"/changelog/sign-up-or-sign-in-with-a-one-time-password-otp","distance":0.2996}],"related":[{"site":"vercel-docs","path":"/docs/two-factor-enforcement","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2fa-team-enforcement","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/login-with-passkey-is-now-supported","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-up-or-sign-in-with-a-one-time-password-otp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/2fa-team-enforcement","title":"Two-factor authentication (2FA) team enforcement","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/two-factor-enforcement"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/two-factor-enforcement","distance":0.1582},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","distance":0.2171},{"site":"vercel-docs","path":"/docs/two-factor-authentication","distance":0.2855},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","distance":0.3787},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","distance":0.3795}],"related":[{"site":"vercel-docs","path":"/docs/two-factor-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/request-access-to-teams-right-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/30-day-runtime-log-retention-now-available-in-observability-plus","title":"30-day runtime log retention, now available in Observability Plus","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.2282},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.2629},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2695},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2846},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","distance":0.2957}],"related":[{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/402-mcp-enables-x402-payments-in-mcp","title":"402-mcp enables x402 payments in MCP","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-x402-mcp-open-protocol-payments-for-mcp-tools"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-x402-mcp-open-protocol-payments-for-mcp-tools","distance":0.0892},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","distance":0.2916},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","distance":0.2924},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2945},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","distance":0.3141}],"related":[{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","title":"45% faster build initialization","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/a-deep-dive-into-hive-vercels-builds-infrastructure"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.1374},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.1991},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.2057},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.2118},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.2135}],"related":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/5tb-file-transfers-with-vercel-blob-multipart-uploads","title":"Up to 5 TB file transfers with Blob multipart uploads","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-file-upload-progress","distance":0.2384},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.241},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","distance":0.2507},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.2518}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-upload-and-store-files-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-file-upload-progress","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","title":"A new dashboard overview is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.1851},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.1989},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.2024},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.2321},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","distance":0.2368}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/access-billing-usage-cost-data-api","title":"Access billing usage and cost data via API","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/usage"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges"}],"inbound":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","distance":0.2208},{"site":"vercel-docs","path":"/docs/pricing","distance":0.2827},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","distance":0.2874},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","distance":0.2916},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2931}],"related":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/enterprise/billing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/marketplace/submit-billing-data","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","title":"Access groups now generally available on Enterprise plans","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.1822},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.2062},{"site":"vercel-docs","path":"/docs/rbac/access-groups","distance":0.2113},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","distance":0.2335},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","distance":0.261}],"related":[{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","title":"Access Perplexity Web Search on Vercel AI Gateway with any model","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","distance":0.0701},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","distance":0.2388},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","distance":0.2576},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.2638},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","distance":0.2841}],"related":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","title":"Access tokens can now be scoped to teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","distance":0.2469},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","distance":0.2553},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","distance":0.261},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.2856},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","distance":0.286}],"related":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/request-access-to-teams-right-from-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/accessibility-tool","title":"Uncover accessibility issues on your deployments from the Vercel Toolbar","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","distance":0.1636},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.2385},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.2691},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","distance":0.2838},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","distance":0.2879}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/accessibility-audit-tool","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"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-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-open-graph-data-with-the-vercel-toolbar","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/account-owned-domains-now-visible-in-team-scope-domains-tab","title":"Account-owned domains now visible in team-scope domains tab","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-account-settings","distance":0.2999},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","distance":0.3167},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.3173},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.3197},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","distance":0.3496}],"related":[{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-account-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/accounts-can-now-have-multiple-email-addresses","title":"Accounts can now have multiple email addresses","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/accounts","distance":0.3526},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","distance":0.3786},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","distance":0.3843},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","distance":0.3853},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.3853}],"related":[{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","title":"Activity date filtering now available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/march-2023"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","distance":0.2797},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","distance":0.3073},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.3082},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","distance":0.3142},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","distance":0.3785}],"related":[{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","title":"Activity Log now available in Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/activity-log"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","distance":0.242},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","distance":0.2602},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","distance":0.2797},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2877},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","distance":0.2913}],"related":[{"site":"vercel-docs","path":"/docs/cli/activity","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","title":"Activity log now tracks 100% of team and project changes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/activity-log"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","distance":0.1637},{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","distance":0.2602},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2793},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","distance":0.3142},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.3255}],"related":[{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/add-cache-tags-from-function-responses-regardless-of-framework","title":"Add cache tags from Function responses, regardless of framework","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/cache"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","distance":0.1865},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","distance":0.2737},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","distance":0.2745},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package","distance":0.2849},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","distance":0.3044}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/functions/cacheTag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","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/rest-api/edge-cache/dangerously-delete-by-tag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/add-elastic-scalability-to-your-backend-with-cockroach-labs","title":"Add elastic scalability to your backend with Cockroach Labs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","distance":0.3314},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","distance":0.3384},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.3477},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","distance":0.3648},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","distance":0.3693}],"related":[{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/mongodb-and-vercel-from-idea-to-global-fullstack-app-in-seconds","via":"neighbor"},{"site":"vercel-web","path":"/blog/effortless-high-availability-for-dynamic-frontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/add-real-time-analytics-to-your-application-with-tinybird-integration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/add-real-time-analytics-to-your-application-with-tinybird-integration","title":"Add real-time analytics to your project with the Tinybird integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.3096},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","distance":0.3172},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","distance":0.3327},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","distance":0.3465},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3531}],"related":[{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/additional-custom-environments-can-now-be-purchased","title":"Additional custom environments can now be purchased","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","distance":0.1534},{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.2253},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","distance":0.2685},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2922}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/create-a-custom-environment-for-the-current-project","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/update-a-custom-environment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","title":"Additional options for sharing deployments externally","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/invite-collaborators-to-view-and-comment-on-your-deployments","distance":0.1793},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","distance":0.2275},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","distance":0.2537},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2754},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","distance":0.2769}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invite-collaborators-to-view-and-comment-on-your-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","title":"Advanced egress firewall filtering for Vercel Sandbox","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-devin-outposts"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","distance":0.1431},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","distance":0.1714},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","distance":0.2083},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","distance":0.2123},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-postgres-connections","distance":0.2308}],"related":[{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","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/working-with-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-postgres-connections","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","title":"Advanced Remix integration with streaming SSR and multi-runtime support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","distance":0.1041},{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","distance":0.1279},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","distance":0.2103},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.2565},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.2754}],"related":[{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","title":"Agent Runs now show subagent activity on eve projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/eve/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","distance":0.1755},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","distance":0.1934},{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.2431},{"site":"eve","path":"/docs/observability/agent-runs","distance":0.2658},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.2695}],"related":[{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","title":"Agent Runs now available in the Vercel MCP and CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"},{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/eve/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","distance":0.1755},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","distance":0.1933},{"site":"vercel-changelog","path":"/changelog/agents-can-now-access-runtime-logs-with-vercels-mcp-server","distance":0.2013},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.2286},{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.2317}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agents-can-now-access-runtime-logs-with-vercels-mcp-server","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/agentmail-vercel-marketplace","title":"AgentMail joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","distance":0.2663},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2676},{"site":"vercel-changelog","path":"/changelog/resend-vercel-marketplace","distance":0.276},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.2779},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","distance":0.2905}],"related":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/resend-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/agents-can-now-access-runtime-logs-with-vercels-mcp-server","title":"Agents can now access runtime logs with Vercel's MCP server","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","distance":0.2013},{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server","distance":0.2174},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2644},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2803},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","distance":0.3}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","title":"Agents can now buy domains with the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/domains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2438},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2525},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.2594},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","distance":0.2638},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","distance":0.2664}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/aggregate-and-visualize-traffic-data-with-monitoring","title":"Aggregate and visualize traffic data with Monitoring","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","distance":0.2571},{"site":"vercel-web","path":"/blog/introducing-monitoring","distance":0.3049},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.3136},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","distance":0.3158},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.3363}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","title":"AI Chat now available on Vercel docs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.1869},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","distance":0.2355},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","distance":0.2736},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.2841},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","distance":0.2936}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/transforming-customer-support-with-ai-how-vercel-decreased-tickets","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-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","title":"AI Code Elements","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/agents/overview"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","distance":0.2272},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","distance":0.2423},{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","distance":0.2445},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.2865},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-3","distance":0.3132}],"related":[{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-open-source-program-spring-2026-cohort","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","title":"AI code reviews by Vercel Agent now in Public Beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.1674},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","distance":0.1771},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.1873},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","distance":0.2037},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","distance":0.2097}],"related":[{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-domain-search-now-available-via-vercel-domains","title":"AI domain search now available via Vercel Domains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-ai-domains","distance":0.2327},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2333},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2696},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","distance":0.2866},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.291}],"related":[{"site":"vercel-web","path":"/blog/using-the-ai-sdk-to-fix-edge-case-errors-in-our-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-ai-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","title":"AI Elements 1.9 is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","distance":0.2011},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","distance":0.2445},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","distance":0.2513},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","distance":0.3217},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.3285}],"related":[{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-generative-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-next-js-documentation","title":"AI-enhanced search for Next.js documentation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","distance":0.3595},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","distance":0.3617},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","distance":0.3735},{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","distance":0.3737}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gpt-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides","via":"neighbor"},{"site":"nextjs","path":"/docs/architecture/accessibility","via":"neighbor"},{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","title":"AI-enhanced search for Vercel documentation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","distance":0.1869},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-next-js-documentation","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","distance":0.2339},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","distance":0.2456},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","distance":0.2643}],"related":[{"site":"vercel-web","path":"/blog/transforming-customer-support-with-ai-how-vercel-decreased-tickets","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-next-js-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","title":"AI Gateway adds Browserbase Search and Fetch tools","summary":null,"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/models-and-providers/web-search"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2252},{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","distance":0.2388},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.2504},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.2582}],"related":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-unified-fast-mode-support","title":"AI Gateway adds unified fast mode support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","distance":0.1414},{"site":"vercel-changelog","path":"/changelog/opus-4-6-fast-mode-available-on-ai-gateway","distance":0.1583},{"site":"vercel-changelog","path":"/changelog/fast-mode-for-opus-4-7-available-on-ai-gateway","distance":0.1639},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","distance":0.2553},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","distance":0.2581}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-6-fast-mode-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-mode-for-opus-4-7-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","title":"AI Gateway and one-click deploys now available on TRAE","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.2168},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.2201},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.2349},{"site":"vercel-changelog","path":"/changelog/trinity-mini-model-now-available-in-vercel-ai-gateway","distance":0.2355}],"related":[{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploying-ai-applications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trinity-mini-model-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","title":"AI Gateway: GPT-5.6 pricing and speed updates","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","distance":0.1494},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","distance":0.1892},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","distance":0.2109},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","distance":0.2311},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","distance":0.2355}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","title":"AI Gateway is now available on AWS Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.1498},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.1895},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2294},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.2403},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2513}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","title":"AI Gateway is now generally available","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available"}],"inbound":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.107},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.1266},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.1451},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","distance":0.1498},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","distance":0.163}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","title":"AI Gateway is now in Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.107},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.1477},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.1796},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","distance":0.1895},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","distance":0.2062}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","title":"AI Gateway logs now have a dedicated page","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","distance":0.2079},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2252},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","distance":0.2416},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","distance":0.2446},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.2575}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/unified-reporting-for-your-ai-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-data-and-shareable-charts-for-ai-gateway-leaderboards","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-asynchronous-video-generation","title":"AI Gateway now supports asynchronous video generation","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation","distance":0.1972},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.2293},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2432},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.2495},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","distance":0.2603}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation","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/video","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-workflow/generate-video","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","title":"AI Gateway now supports streaming transcription","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","distance":0.1696},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-transcribe-now-available-on-ai-gateway","distance":0.1789},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","distance":0.218},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.2187},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2405}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-transcribe-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-live-1-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-typesafe-clients-and-http-api-for-jev","title":"AI Gateway now supports TypeSafe clients and an HTTP API for Jev","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/typesafe-ai-jev-now-available-on-ai-gateway","distance":0.0691},{"site":"vercel-web","path":"/blog/ai-gateway-jev-model-launch","distance":0.1826},{"site":"vercel-web","path":"/blog/jev-for-python-engineers","distance":0.2357},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","distance":0.2427},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","distance":0.2458}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-jev-model-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/typesafe-ai-jev-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/jev-for-python-engineers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-ai-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","title":" Routing rules now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"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/routing-rules"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules","distance":0.1517},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","distance":0.2716},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","distance":0.2782},{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","distance":0.2843},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","distance":0.2898}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-your-own-ai-model-router","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/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/create-rule","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-application-aware-routing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","title":"AI Gateway now supports team and project spend budgets","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/set-per-user-budgets-on-ai-gateway","distance":0.1244},{"site":"vercel-changelog","path":"/changelog/budgets-for-api-keys-on-ai-gateway","distance":0.1682},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","distance":0.2151},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-ai-gateway-budgets","distance":0.2468},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2474}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-ai-gateway-budgets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/archive-ai-gateway-budget","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/upsert-ai-gateway-budget","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-per-user-budgets-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/budgets-for-api-keys-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-support-for-claude-code","title":"AI Gateway support for Claude Code","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-code-max-via-ai-gateway-available-now-for-claude-code","distance":0.1425},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.1954},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.2026},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.2156},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.2183}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-code-max-via-ai-gateway-available-now-for-claude-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","title":"AI Gateway supports OpenAI's Responses API","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/openresponses-api-now-supported-on-vercel-ai-gateway","distance":0.135},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","distance":0.1934},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.194},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.2068},{"site":"vercel-changelog","path":"/changelog/websocket-support-for-openai-responses-api-live-on-ai-gateway","distance":0.2159}],"related":[{"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","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/openai-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/responses/streaming","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/reasoning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openresponses-api-now-supported-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-for-openai-responses-api-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","title":"AI Integrations and playground in the Vercel Dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.1411},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1992},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","distance":0.2142},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.2421},{"site":"vercel-web","path":"/blog/how-to-integrate-ai-into-your-business","distance":0.2462}],"related":[{"site":"vercel-web","path":"/blog/ai-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":"vercel-web","path":"/blog/how-to-integrate-ai-into-your-business","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploying-ai-applications","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-query-prompting-now-available-in-observability-plus","title":"AI query prompting now available in Observability Plus","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2128},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2639},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2643},{"site":"vercel-changelog","path":"/changelog/new-quick-actions-in-observability","distance":0.2885},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","distance":0.2973}],"related":[{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-quick-actions-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-sdk-7","title":"AI SDK 7 is now available","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/telemetry"},{"site":"ai-sdk","path":"/docs/migration-guides/migration-guide-7-0"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-terminal-ui"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent"},{"site":"vercel-kb","path":"/kb/guide/typesafe-jev-and-ai-sdk"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/run-research-workspace-vercel"},{"site":"vercel-web","path":"/blog/ai-sdk-7"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/ai-sdk-7","distance":0.1517},{"site":"vercel-web","path":"/blog/ai-sdk-5","distance":0.2159},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","distance":0.234},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","distance":0.246},{"site":"vercel-web","path":"/blog/ai-sdk-3-4","distance":0.2562}],"related":[{"site":"vercel-kb","path":"/kb/guide/run-research-workspace-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-7","via":"inbound"},{"site":"vercel-web","path":"/blog/ai-sdk-5","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-ai-sdk-vs-tanstack-ai","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-4","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-gateway-and-ai-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-sdk-and-ai-gateway-now-integrated-in-github-actions","title":"AI SDK and AI Gateway now integrated in GitHub Actions ","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/run-ai-prompts-in-your-github-actions-with-the-vercel-ai-action","distance":0.2036},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2533},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.2679},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.2828},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","distance":0.2832}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","title":"AI SDK harness layer now supports native subscription authentication","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2284},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.2318},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2398},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.2408},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","distance":0.2696}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","title":"AI Voice Elements","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/speech"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/transcription"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-code-elements","distance":0.2272},{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","distance":0.2513},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","distance":0.2609},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.2971},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","distance":0.3237}],"related":[{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-generative-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/algolia-vercel-marketplace","title":"Algolia joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","distance":0.2703},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.2753},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","distance":0.2876},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.3028},{"site":"vercel-web","path":"/blog/algolia-cuts-build-times-in-half-with-isr-using-next-js-on-vercel","distance":0.3076}],"related":[{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/algolia-cuts-build-times-in-half-with-isr-using-next-js-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/amazon-opensearch-serverless-is-now-available-in-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","title":"Always-on tracing for production and preview traffic","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing","distance":0.118},{"site":"vercel-docs","path":"/docs/tracing","distance":0.2231},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","distance":0.2607},{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","distance":0.2735},{"site":"vercel-docs","path":"/docs/cli/traces","distance":0.2995}],"related":[{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/traces-now-support-tree-and-waterfall-views","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-ai-gateway-traces-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/amazon-bedrock-provider-for-the-vercel-ai-sdk-now-available","title":"Amazon Bedrock Provider for the Vercel AI SDK now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/azure-ai-provider-for-the-vercel-ai-sdk-now-available","distance":0.1906},{"site":"vercel-changelog","path":"/changelog/cohere-provider-for-the-vercel-ai-sdk-now-available","distance":0.2476},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","distance":0.3161},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","distance":0.3235},{"site":"vercel-web","path":"/blog/vercel-and-aws-partner-on-ai-tools-and-experiences","distance":0.3356}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-and-aws-partner-on-ai-tools-and-experiences","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/azure-ai-provider-for-the-vercel-ai-sdk-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cohere-provider-for-the-vercel-ai-sdk-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/amazon-opensearch-serverless-is-now-available-in-the-vercel-marketplace","title":"Amazon OpenSearch Serverless is now available in the Vercel Marketplace","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-joins-aws-marketplace","distance":0.2416},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.2841},{"site":"vercel-web","path":"/blog/aws-and-vercel-accelerating-innovation-with-serverless-computing","distance":0.2902},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","distance":0.2905},{"site":"vercel-web","path":"/blog/vercel-and-aws-partner-on-ai-tools-and-experiences","distance":0.2942}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-joins-aws-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-and-vercel-accelerating-innovation-with-serverless-computing","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-and-aws-partner-on-ai-tools-and-experiences","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/algolia-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","title":"An expanded Vercel Agent: chat, investigations, and approved actions, now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.1473},{"site":"vercel-docs","path":"/docs/agent","distance":0.149},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","distance":0.1509},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","distance":0.1639},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","distance":0.1752}],"related":[{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","title":"Anomaly alert configuration now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","distance":0.0845},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","distance":0.1387},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","distance":0.1392},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","distance":0.1441},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","distance":0.1776}],"related":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","title":"Anomaly alerts are now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","distance":0.0719},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","distance":0.0845},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","distance":0.0961},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","distance":0.1103},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","distance":0.1445}],"related":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","title":"Anomaly alerts now available via email","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","distance":0.0961},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","distance":0.0985},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","distance":0.0994},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","distance":0.1013},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","distance":0.1387}],"related":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","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-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","title":"Anomaly alerts now in limited beta for Enterprise customers","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","distance":0.0985},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","distance":0.1026},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","distance":0.112},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","distance":0.1445},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","distance":0.1776}],"related":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","title":"Anomaly alerts now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","distance":0.0719},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","distance":0.0994},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","distance":0.1117},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","distance":0.112},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","distance":0.1441}],"related":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","title":"Anomaly alerts now include error spikes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","distance":0.1013},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","distance":0.1026},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","distance":0.1103},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","distance":0.1117},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","distance":0.1392}],"related":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-limited-beta-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","title":"Free domain with Pro offer now includes .app and .dev","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams","distance":0.1115},{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","distance":0.121},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","distance":0.207},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","distance":0.2946},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.3184}],"related":[{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","via":"neighbor"},{"site":"vercel-web","path":"/blog/default-production-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/wildcard-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","title":"Application-aware Observability now in limited beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.1538},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","distance":0.1691},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2282},{"site":"vercel-changelog","path":"/changelog/track-build-metrics-and-resource-consumption-with-observability","distance":0.2296},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.2314}],"related":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/track-build-metrics-and-resource-consumption-with-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","title":"Apply code suggestions from Vercel Agent with one click","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","distance":0.1115},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","distance":0.2052},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","distance":0.2097},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","distance":0.2438}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","title":"Improvements and fixes","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.1679},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.1741},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1767},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.189},{"site":"vercel-changelog","path":"/changelog/papercuts-small-feature-requests-and-bug-fixes","distance":0.1942}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/papercuts-small-feature-requests-and-bug-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/assistloop-joins-the-vercel-agents-marketplace","title":"AssistLoop joins the Vercel Agents Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/parallel-joins-the-vercel-agent-marketplace","distance":0.3043},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.336},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.3383},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","distance":0.342},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","distance":0.3426}],"related":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/transforming-customer-support-with-ai-how-vercel-decreased-tickets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-joins-the-vercel-agent-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/astro-projects-can-now-be-deployed-with-zero-configuration","title":"Astro projects can now be deployed with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.2539},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.2715},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.2871},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.2936},{"site":"vercel-web","path":"/blog/zero-config","distance":0.3099}],"related":[{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/astro","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-an-astro-app-from-webflow-cloud-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/attack-challenge-mode-now-allows-verified-bots-and-vercel-cron-jobs","title":"Attack Challenge Mode now allows verified bots and Vercel cron jobs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","distance":0.2385},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","distance":0.2415},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","distance":0.2648},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","distance":0.2735},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","distance":0.3033}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","title":"Audit Log Drains now support Datadog, Splunk, and Panther","summary":null,"outbound":[{"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-splunk"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.1124},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.164},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs","distance":0.2125},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","distance":0.2144},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.2155}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","title":"Audit logs with SIEM integration now generally available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-export-audit-logs","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2284},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","distance":0.2492},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.2617},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","distance":0.2722}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-export-audit-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","title":"Improvements and fixes","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1455},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.1485},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.1676},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.189},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2055}],"related":[{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","title":"Auth0 joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/clerk-joins-the-vercel-marketplace","distance":0.2159},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2204},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2352},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","distance":0.2436},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","distance":0.2459}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-better-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/clerk-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/authenticate-vercel-flags-with-openid-connect-by-default","title":"Vercel Flags no longer requires SDK Keys for Vercel deployments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2206},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.254},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2574},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.2678}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/sdk-keys","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"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":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/information-disclosure-in-flags-sdk-cve-2025-46332","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/auto-add-git-committers-to-your-team","title":"Auto-add Git committers to your team","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","distance":0.3043},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","distance":0.3103},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","distance":0.3163},{"site":"vercel-web","path":"/blog/new-git-integration-settings","distance":0.3175},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","distance":0.3188}],"related":[{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/bitbucket","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/auto-recharge-available-in-ai-gateway","title":"Auto-recharge available in AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","distance":0.2773},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.3283},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","distance":0.3343},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.3386},{"site":"vercel-docs","path":"/docs/ai-gateway","distance":0.3487}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing/discounts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/faq","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/budgets-for-api-keys-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/auto-renewal-can-now-be-disabled-for-domains","title":"Auto Renewal can now be disabled for Domains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.2355},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","distance":0.2383},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.301},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","distance":0.3039},{"site":"vercel-changelog","path":"/changelog/domain-renewal-status-filtering","distance":0.3049}],"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-kb","path":"/kb/guide/lifecycle-of-a-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-renewal-status-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","title":"Automated DNS configuration with Domain Connect","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","distance":0.1414},{"site":"vercel-docs","path":"/docs/domains/domain-connect","distance":0.2374},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2443},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","distance":0.2754}],"related":[{"site":"vercel-docs","path":"/docs/domains/domain-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","via":"neighbor"},{"site":"vercel-web","path":"/blog/dns-records-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","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-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-one-click-bluesky-dns-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automated-react2shell-vulnerability-patching-is-now-available","title":"Automated React2Shell vulnerability patching is now available","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/self-driving-infrastructure"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","distance":0.2148},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.2149},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","distance":0.2488},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","distance":0.2592},{"site":"vercel-web","path":"/blog/resources-for-protecting-against-react2shell","distance":0.2626}],"related":[{"site":"vercel-web","path":"/blog/resources-for-protecting-against-react2shell","via":"neighbor"},{"site":"vercel-web","path":"/blog/our-million-dollar-hacker-challenge-for-react2shell","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-vercel-oss-bug-bounty-program-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automated-security-audits-now-available-for-skills-sh","title":"Automated security audits now available for skills.sh","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","distance":0.2925},{"site":"vercel-changelog","path":"/changelog/the-skills-sh-api-is-now-available","distance":0.3013},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.3033},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.3289},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","distance":0.343}],"related":[{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"vercel-web","path":"/blog/state-of-agent-skills","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/deepsecbench-evaluating-model-performance-in-finding-cybersecurity-vulnerabilities","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-deepsec-find-and-fix-vulnerabilities-in-your-code-base","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-skills-sh-api-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","title":"Automatic build fix suggestions with Vercel Agent","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","distance":0.1115},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","distance":0.1978},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","distance":0.2382},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.2527},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","distance":0.2565}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-mitigation-of-crawler-delay-via-skew-protection","title":"Automatic mitigation of Google and Bing crawl delay, via Vercel’s Skew Protection","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-web","path":"/blog/how-google-handles-javascript-throughout-the-indexing-process"}],"inbound":[{"site":"vercel-web","path":"/blog/life-of-a-request-application-aware-routing"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","distance":0.2209},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","distance":0.2396},{"site":"vercel-web","path":"/blog/version-skew-protection","distance":0.2448},{"site":"vercel-docs","path":"/docs/skew-protection","distance":0.255},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","distance":0.2634}],"related":[{"site":"vercel-web","path":"/blog/life-of-a-request-application-aware-routing","via":"inbound"},{"site":"vercel-web","path":"/blog/version-skew-protection","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-google-optimize","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-v0-is-building-seo-optimized-sites-by-default","via":"neighbor"},{"site":"vercel-web","path":"/blog/botid-uncovers-hidden-seo-poisoning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","title":"Automatic pnpm v10 support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","distance":0.1387},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","distance":0.1766},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.2346},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","distance":0.2555},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","distance":0.2745}],"related":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-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-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","title":"Automatic pnpm v7 Support","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","distance":0.1543},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","distance":0.1766},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.2099},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","distance":0.3274}],"related":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-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-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","title":"Automatic pnpm v8 support","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","distance":0.1387},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.2241},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","distance":0.2314},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","distance":0.3161}],"related":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-recursion-protection-for-vercel-serverless-functions","title":"Automatic recursion protection for Vercel Functions","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/usage-notification-settings-is-now-generally-available"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust"},{"site":"vercel-web","path":"/pricing"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-security-with-automation-testing-now-available-on-all-plans","distance":0.3427},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","distance":0.3506},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.3531},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","distance":0.3599},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","distance":0.3611}],"related":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"inbound"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"inbound"},{"site":"vercel-web","path":"/pricing","via":"inbound"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-security-with-automation-testing-now-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatic-rest-api-documentation-with-openapi","title":"Automatic REST API documentation with OpenAPI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/schema-autocomplete-and-validation-for-vercel-json"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","distance":0.3211},{"site":"vercel-changelog","path":"/changelog/rest-api-for-the-vercel-firewall","distance":0.3456},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.3642},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.3711},{"site":"vercel-changelog","path":"/changelog/schema-autocomplete-and-validation-for-vercel-json","distance":0.3739}],"related":[{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rest-api-for-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/schema-autocomplete-and-validation-for-vercel-json","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatically-detect-and-replay-layout-shifts","title":"Automatically detect and replay layout shifts from the Vercel Toolbar","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","distance":0.2093},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.2557},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.2617},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.2636},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","distance":0.274}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/layout-shift-tool","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reposition-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","title":"Automatically skip unnecessary deployments in monorepos","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","distance":0.1916},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","distance":0.2013},{"site":"vercel-changelog","path":"/changelog/intelligent-ignored-builds-using-turborepo","distance":0.2195},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","distance":0.2462},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2779}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/intelligent-ignored-builds-using-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","title":"AWS databases now available on the Vercel Marketplace","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","distance":0.089},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","distance":0.1002},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.225},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","distance":0.2252},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","distance":0.2267}],"related":[{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/connect-next-js-to-amazon-aurora-postgresql-using-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/aws-privatelink-is-now-available-on-pro-and-enterprise","title":"AWS PrivateLink is now available on Pro and Enterprise","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-choose-the-right-vercel-networking-option"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","distance":0.2872},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.3115},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.3195},{"site":"vercel-kb","path":"/kb/guide/how-to-choose-the-right-vercel-networking-option","distance":0.3198},{"site":"vercel-docs","path":"/docs/networking","distance":0.321}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-choose-the-right-vercel-networking-option","via":"inbound"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-joins-aws-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vpc-peering-now-available-as-self-service-for-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/axiom-is-joining-the-vercel-marketplace","title":"Axiom is joining the Vercel marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.299},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.3038},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3113},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.3163},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","distance":0.3244}],"related":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","title":"Axios package compromise and remediation steps","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","distance":0.2696},{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","distance":0.2782},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","distance":0.2996},{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","distance":0.3302}],"related":[{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/azure-ai-provider-for-the-vercel-ai-sdk-now-available","title":"Azure AI Provider for the Vercel AI SDK now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/amazon-bedrock-provider-for-the-vercel-ai-sdk-now-available","distance":0.1906},{"site":"vercel-changelog","path":"/changelog/cohere-provider-for-the-vercel-ai-sdk-now-available","distance":0.2244},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.2882},{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","distance":0.2931},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","distance":0.3046}],"related":[{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/azure-ai","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/amazon-bedrock-provider-for-the-vercel-ai-sdk-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cohere-provider-for-the-vercel-ai-sdk-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","title":"Azure CosmosDB integration now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","distance":0.2524},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","distance":0.2661},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.2717},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","distance":0.2721},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","distance":0.2811}],"related":[{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/azure","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/backups-now-available-for-vercel-edge-config","title":"Backups now available for Vercel Edge Config","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","distance":0.2133},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.2375},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","distance":0.2455},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.2589},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","distance":0.2705}],"related":[{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/global-config/get_edge_config_backups","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/restore-global-config-backup","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-your-edge-config-with-a-json-schema","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","title":"Basic build machines are now available on Pro and Enterprise","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","distance":0.2004},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2226},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","distance":0.2583},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","distance":0.263},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.2672}],"related":[{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/billing-role-on-pro","title":"Pro teams now have an included team seat for Billing","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.235},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","distance":0.2863},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.2902},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","distance":0.2972},{"site":"vercel-changelog","path":"/changelog/threshold-billing-is-now-enabled-for-pro-teams","distance":0.3099}],"related":[{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-invoice-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/threshold-billing-is-now-enabled-for-pro-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","title":"Block, rate limit, and challenge traffic with the Vercel Firewall","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.1419},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.1592},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.1732},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","distance":0.18},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","distance":0.183}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-redirect-traffic-using-custom-vercel-firewall-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","title":"Block Vercel deployment promotions with GitHub Actions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-checks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","distance":0.2341},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","distance":0.2458},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","distance":0.2534},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.2607},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","distance":0.2713}],"related":[{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-web","path":"/blog/bitbucket","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bookmark-domains-on-vercel-domains","title":"Bookmark domains on Vercel Domains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2763},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","distance":0.2948},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.3174},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","distance":0.3263},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.3281}],"related":[{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","title":"Bot activity and crawler insights now in Observability","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/view-and-query-bot-verification-data-in-vercel-observability","distance":0.1776},{"site":"vercel-changelog","path":"/changelog/observability-for-edge-requests-now-includes-more-traffic-parameters","distance":0.2466},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2501},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2592},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","distance":0.2647}],"related":[{"site":"vercel-changelog","path":"/changelog/view-and-query-bot-verification-data-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-for-edge-requests-now-includes-more-traffic-parameters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","title":"Bot Protection is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"}],"inbound":[{"site":"vercel-web","path":"/blog/self-driving-infrastructure"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-in-public-beta","distance":0.0783},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","distance":0.1087},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","distance":0.1943},{"site":"vercel-changelog","path":"/changelog/new-one-click-ai-bot-managed-ruleset","distance":0.2348},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.252}],"related":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/self-driving-infrastructure","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-one-click-ai-bot-managed-ruleset","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/attack-challenge-mode-now-allows-verified-bots-and-vercel-cron-jobs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-in-public-beta","title":"Bot Protection is now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-concepts"}],"inbound":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","distance":0.0655},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","distance":0.0783},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","distance":0.2524},{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-in-beta","distance":0.2545},{"site":"vercel-changelog","path":"/changelog/new-one-click-ai-bot-managed-ruleset","distance":0.2642}],"related":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-one-click-ai-bot-managed-ruleset","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","title":"Improved fake hardware detection with Vercel BotID","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/botid/get-started"},{"site":"vercel-web","path":"/blog/introducing-botid"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","distance":0.1624},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.1808},{"site":"vercel-web","path":"/blog/introducing-botid","distance":0.2327},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","distance":0.235},{"site":"vercel-web","path":"/blog/botid-deep-analysis-catches-a-sophisticated-bot-network-in-real-time","distance":0.2375}],"related":[{"site":"vercel-web","path":"/blog/botid-deep-analysis-catches-a-sophisticated-bot-network-in-real-time","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","via":"neighbor"},{"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-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/botid-uncovers-hidden-seo-poisoning","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-against-token-theft","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/botid-now-available-for-all-frameworks","title":"Vercel BotID now  available for all frameworks","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"},{"site":"vercel-web","path":"/blog/introducing-botid"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.112},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","distance":0.1473},{"site":"vercel-web","path":"/blog/introducing-botid","distance":0.1596},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","distance":0.2317},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","distance":0.2438}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","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-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bounce-rate-support-in-web-analytics","title":"Bounce rate support in Web Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics/filtering"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.3068},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","distance":0.3189},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.3529},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","distance":0.3567},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.3655}],"related":[{"site":"vercel-docs","path":"/docs/analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","title":"Braintrust joins the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2514},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","distance":0.2655},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.2691},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.2776},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","distance":0.2785}],"related":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bring-your-dockerfile-to-vercel-functions","title":"Bring your Dockerfile to Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/dockerfile-on-vercel","distance":0.1627},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","distance":0.2103},{"site":"vercel-docs","path":"/docs/functions/runtimes/container","distance":0.2346},{"site":"vercel-kb","path":"/kb/guide/docker","distance":0.2351},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","distance":0.2425}],"related":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-ruby-on-rails-applications","via":"inbound"},{"site":"vercel-web","path":"/blog/dockerfile-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-docker-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/container","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-go-using-docker-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-nodejs-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/browserbase-joins-the-vercel-agent-marketplace","title":"Browserbase joins the Vercel Agent Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2553},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.2736},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","distance":0.2845},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","distance":0.2938},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","distance":0.3013}],"related":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/budgets-for-api-keys-on-ai-gateway","title":"Budgets for API keys on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","distance":0.1682},{"site":"vercel-changelog","path":"/changelog/set-per-user-budgets-on-ai-gateway","distance":0.1697},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys","distance":0.187},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","distance":0.2186},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2757}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-ai-gateway-budgets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/route-coding-agent-spend-through-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/archive-ai-gateway-budget","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-per-user-budgets-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","title":"Build and deploy eve agents from the Vercel dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/agent-stack","distance":0.1744},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","distance":0.1872},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","distance":0.2124},{"site":"vercel-docs","path":"/docs/eve","distance":0.2158},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.2223}],"related":[{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-shopify-storefronts-on-vercel","title":"Build and deploy Shopify storefronts on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","distance":0.2218},{"site":"vercel-shop","path":"/docs","distance":0.2408},{"site":"vercel-kb","path":"/kb/guide/deploy-shopify-app-to-vercel","distance":0.253},{"site":"v0","path":"/docs/shopify","distance":0.2678},{"site":"vercel-kb","path":"/kb/guide/deploy-headless-shopify-storefront-with-vercel","distance":0.2723}],"related":[{"site":"vercel-kb","path":"/kb/guide/building-ecommerce-sites-with-next-js-and-shopify","via":"inbound"},{"site":"vercel-shop","path":"/docs","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/deploy-headless-shopify-storefront-with-vercel","via":"neighbor"},{"site":"vercel-shop","path":"/docs/getting-started","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-and-function-logs-now-render-ansi-color-codes-nicely","title":"Build and Function Logs now render ANSI color codes nicely","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/refined-logging","distance":0.3209},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.3294},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","distance":0.3581},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","distance":0.3586},{"site":"vercel-web","path":"/blog/changelog-july-2020","distance":0.3591}],"related":[{"site":"vercel-web","path":"/blog/refined-logging","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-december-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-command-line-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","title":"Build cache storage increased for larger build machines","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.2378},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-use-turborepo-cache-hits-to-prevent-downgrades","distance":0.2807},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.2878},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","distance":0.2883},{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","distance":0.2914}],"related":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-use-turborepo-cache-hits-to-prevent-downgrades","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-chat-sdk-web-uis-in-vue-or-svelte","title":"Build Chat SDK web UIs in Vue or Svelte","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-ui/stream-protocol"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1431},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2386},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2534},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.2583}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-commits-to-the-same-branch-without-waiting","title":"Commits to the same branch now build with no queues","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/limit-on-demand-concurrent-builds-to-one-build-per-branch","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.2718},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.2748},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2767},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2905}],"related":[{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/limit-on-demand-concurrent-builds-to-one-build-per-branch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-custom-slack-runtimes","title":"Build custom Slack runtimes","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2148},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2245},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2516},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.2588},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2593}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-logs-now-redact-sensitive-environment-variable-values","title":"Build logs now redact Sensitive Environment Variable values","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.1917},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.2589},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.2751},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","distance":0.296},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","distance":0.3038}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-logs-now-support-interactive-links","title":"Build logs now support interactive links","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/link-and-share-build-logs","distance":0.2112},{"site":"vercel-docs","path":"/docs/deployments/logs","distance":0.3126},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.3624},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.3642},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.3674}],"related":[{"site":"vercel-changelog","path":"/changelog/link-and-share-build-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-function-logs-now-render-ansi-color-codes-nicely","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-mcp-server-with-nuxt","title":"Build an MCP server with Nuxt","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","distance":0.1522},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2213},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.263},{"site":"vercel-docs","path":"/docs/mcp","distance":0.2851},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2943}],"related":[{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","via":"neighbor"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-second-wave-of-mcp-building-for-llms-not-developers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/mcp-tools","via":"neighbor"},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-slack-agents-with-vercel-slack-bolt","title":"Deploy Slack's Bolt.js to Vercel with @vercel/slack-bolt","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","distance":0.2329},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","distance":0.2593},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","distance":0.2707},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2716},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","distance":0.2825}],"related":[{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","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/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/triage-form-submissions-with-chat-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","title":"Build with OpenAI Agents API on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-kb","path":"/kb/guide/openai-agents-api-vercel"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.1874},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/openai-agents-api","distance":0.2039},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","distance":0.2124},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","distance":0.2173},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","distance":0.2327}],"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/ecosystem/openai-agents-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","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-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/anyone-can-build-agents-but-it-takes-a-platform-to-run-them","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","title":"Builds now start up to 30% faster","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.1374},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.1864},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.194},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2161},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","distance":0.2266}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","title":"Bulk enable on-demand concurrent builds across projects ","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.1336},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.2091},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2295},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","distance":0.2418},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2423}],"related":[{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-are-now-generally-available","title":"Bulk redirects are now generally available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","distance":0.0488},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","distance":0.1333},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","distance":0.1848},{"site":"vercel-web","path":"/blog/scaling-redirects-to-infinity-on-vercel","distance":0.2154},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/routing/list_bulk_redirects","distance":0.2579}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/scaling-redirects-to-infinity-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/routing/list_bulk_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/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","title":"Bulk redirects UI, API, and CLI now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/bulk-redirects-are-now-generally-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bulk-redirects-are-now-generally-available","distance":0.0488},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","distance":0.1533},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","distance":0.1752},{"site":"vercel-web","path":"/blog/scaling-redirects-to-infinity-on-vercel","distance":0.1921},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","distance":0.2437}],"related":[{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/bulk-redirects/getting-started","via":"neighbor"},{"site":"vercel-web","path":"/blog/scaling-redirects-to-infinity-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing/redirects/manage-redirects-at-scale","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/routing/list_bulk_redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/bulk-redirects/edit-a-project-level-redirect","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bulk-upgrade-deprecated-node-js-versions","title":"Bulk upgrade deprecated Node.js versions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/one-click-upgrade-for-deprecated-node-js-versions","distance":0.1212},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.2214},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.2318},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.2341},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.2619}],"related":[{"site":"vercel-changelog","path":"/changelog/one-click-upgrade-for-deprecated-node-js-versions","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","title":"Bulk upload now available for Environment Variables","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","distance":0.249},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2531},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.2554},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","distance":0.2732},{"site":"vercel-changelog","path":"/changelog/16x-larger-environment-variable-storage-up-to-64kb","distance":0.2907}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"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/shared-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/16x-larger-environment-variable-storage-up-to-64kb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-can-now-be-filtered","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","title":"Bun 1.4 is now available in Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/functions/websockets"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","distance":0.1373},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","distance":0.1525},{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","distance":0.1818},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.2315}],"related":[{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/buns-text-lockfile-is-now-supported-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","title":"Bun install is now supported with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/buns-text-lockfile-is-now-supported-with-zero-configuration","distance":0.1373},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","distance":0.2308},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","distance":0.2521},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","distance":0.2688},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.2728}],"related":[{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/buns-text-lockfile-is-now-supported-with-zero-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","title":"Bun runtime now in Public Beta for Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions"}],"inbound":[{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","distance":0.0788},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","distance":0.1341},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","distance":0.1525},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","distance":0.1659},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.2062}],"related":[{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rust-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","title":"Bun runtime now supports large functions and extended max duration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/functions/limitations"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","distance":0.2044},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","distance":0.2062},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","distance":0.2178},{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","distance":0.2184},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.2223}],"related":[{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","title":"Bun runtime for Vercel Functions now accepts Bun.serve as an entrypoint","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","distance":0.1373},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","distance":0.1487},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","distance":0.1659},{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","distance":0.1819},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.2178}],"related":[{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/websockets","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/buns-text-lockfile-is-now-supported-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/buns-text-lockfile-is-now-supported-with-zero-configuration","title":"Bun's text lockfile is now supported with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","distance":0.1373},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","distance":0.276},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","distance":0.3034},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","distance":0.3134},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","distance":0.3296}],"related":[{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/bun-runtime-on-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-1-4-is-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-serve-entrypoint-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/bytecode-caching-for-serverless-functions-by-default","title":"Bytecode caching for Serverless Functions by default","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions"}],"inbound":[{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions","distance":0.0929},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.1998},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","distance":0.239},{"site":"vercel-changelog","path":"/changelog/python-function-bundles-now-include-precompiled-bytecode","distance":0.2713},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.2756}],"related":[{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-function-bundles-now-include-precompiled-bytecode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","title":"Caching details now available in Runtime Logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-cache-reasons","distance":0.1875},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","distance":0.2003},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2611},{"site":"vercel-changelog","path":"/changelog/external-api-caching-insights-now-in-observability","distance":0.2884},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.29}],"related":[{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-cache-reasons","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/external-api-caching-insights-now-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","title":"Cape Town (South Africa) is now available on the Edge Network","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/osaka-japan-is-now-available-on-the-edge-network","distance":0.2504},{"site":"vercel-changelog","path":"/changelog/frankfurt-germany-is-now-available-on-the-edge-network","distance":0.269},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3023},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.3156},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","distance":0.3296}],"related":[{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/osaka-japan-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/frankfurt-germany-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","title":"CDN origin timeout increased to two minutes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/limits"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","distance":0.2219},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.2245},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","distance":0.2504},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.3315},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.3341}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/changes-to-supported-tld-registrations","title":"Changes to supported TLD registrations","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","distance":0.3661},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","distance":0.3695},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.3726},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.3859},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","distance":0.3889}],"related":[{"site":"vercel-web","path":"/blog/changelog-february-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","title":"Changes to Vercel Image Optimization","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","distance":0.2065},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.2225},{"site":"vercel-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments","distance":0.2392},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.2456},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","distance":0.2529}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk","title":"Introducing npm i chat – One codebase, every chat platform","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.1178},{"site":"chat-sdk","path":"/docs","distance":0.1739},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.183},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2016},{"site":"vercel-web","path":"/blog/introducing-chatbot","distance":0.2016}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs/usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/scaffold-your-chat-apps-with-create-chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","title":"Chat SDK now has an adapter directory","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/community-providers"},{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1556},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1562},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1998},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","distance":0.2093},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.2167}],"related":[{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs/platform-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","title":"Chat SDK adds AgentPhone support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","distance":0.1821},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2035},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.208},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2085},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2233}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","title":"Chat SDK adds Dial support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/api/thread"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","distance":0.1821},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1933},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1983},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2129},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-sendblue-support","distance":0.2189}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-sendblue-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-discord-components-v2-support","title":"Chat SDK adds Discord Components V2 support","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1952},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2107},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.2348}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-instagram-adapter","title":"Chat SDK adds Instagram adapter","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1922},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.2082},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2202},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2245},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.2307}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-kapso-support","title":"Chat SDK adds Kapso support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","distance":0.1891},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2209},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2412},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","distance":0.2639}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-lark-feishu-support","title":"Chat SDK adds Lark and Feishu support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-linq-adapter","distance":0.209},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.215},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2266},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2344},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support","distance":0.2455}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-linq-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-linq-adapter","title":"Chat SDK adds Linq support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-lark-feishu-support","distance":0.209},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2142},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2239},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support","distance":0.2514}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-lark-feishu-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-liveblocks-support","title":"Chat SDK adds Liveblocks support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1953},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.211},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.2212},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2231}],"related":[{"site":"vercel-kb","path":"/kb/guide/liveblocks-chat-sdk-ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-message-subjects-and-direct-sdk-access","title":"Chat SDK adds message subjects and direct SDK access","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/subject"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2171},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.219},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2259},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2294},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.2301}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","title":"Chat SDK adds Messenger adapter support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1232},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.127},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","distance":0.1366},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1383},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.1556}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","title":"Chat SDK adds native Slack agent support","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.16},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.1681},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.179},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.1943}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-novu-support","title":"Chat SDK adds Novu support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2422},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2448},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2535},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","distance":0.256},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2572}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-photon-support","title":"Chat SDK adds Photon support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2219},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2225},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-sendblue-support","distance":0.2289},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","distance":0.2341}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-sendblue-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-postgresql-state-adapter","title":"Chat SDK adds PostgreSQL state adapter","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.2294},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.2504},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2555},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2592},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2631}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-sendblue-support","title":"Chat SDK adds Sendblue support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.199},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2141},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","distance":0.2189},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2213},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.2214}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-dial-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","title":"Chat SDK adds table rendering and streaming markdown","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.1955},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2156},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2404},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.2463},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2531}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs/api/markdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","title":"Chat SDK adds Telegram adapter support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.127},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.137},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.1512},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","distance":0.1617},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","distance":0.1902}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","title":"Chat SDK adds Twilio adapter support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1232},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.137},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","distance":0.1402},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1507},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","distance":0.1598}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-velt-support","title":"Chat SDK adds Velt support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2263},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2325},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","distance":0.235},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2434},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.2505}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","title":"Chat SDK adds web adapter support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1383},{"site":"vercel-changelog","path":"/changelog/build-chat-sdk-web-uis-in-vue-or-svelte","distance":0.1431},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1507},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.1562},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.1664}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-chat-sdk-web-uis-in-vue-or-svelte","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","title":"Chat SDK adds WhatsApp adapter support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1366},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1402},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.1617},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-kapso-support","distance":0.1891},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1937}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-kapso-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","title":"Chat SDK adds X adapter support","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.1113},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1598},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1669},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1876},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.1902}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-zernio-support","title":"Chat SDK adds Zernio support","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2502},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","distance":0.2673},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","distance":0.2765},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.277},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2789}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","title":"Chat SDK now supports conversation history","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2054},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.2164},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2202},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.2347}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-durable-approvals","title":"Pause workflows for approval with Chat SDK","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/approvals"}],"inbound":[],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/approvals","distance":0.1375},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.2037},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-modals","distance":0.2371},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","distance":0.355},{"site":"workflow","path":"/docs/ai/human-in-the-loop","distance":0.3572}],"related":[{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-workflowagent","via":"neighbor"},{"site":"workflow","path":"/docs/ai/human-in-the-loop","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/tool-approvals","via":"neighbor"},{"site":"eve","path":"/docs/human-in-the-loop","via":"neighbor"},{"site":"workflow","path":"/docs/ai/chat-session-modeling","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-and-track-deploys-from-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/durableagent-to-workflowagent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-modals","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","title":"Chat SDK now includes AI SDK tools","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"chat-sdk","path":"/docs/ai"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"chat-sdk","path":"/docs/ai","distance":0.1727},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2263},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2273},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","distance":0.2274},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.245}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/ai-sdk-tools","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"chat-sdk","path":"/docs/ai/types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-callback-urls-on-buttons-and-modals","title":"Chat SDK now supports callback URLs on buttons and modals","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/actions"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"},{"site":"workflow","path":"/docs/api-reference/workflow/create-webhook"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-durable-approvals","distance":0.2371},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.238},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.265},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","distance":0.2801},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2811}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-durable-approvals","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-whatsapp-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-concurrent-message-handling","title":"Chat SDK now supports concurrent message handling","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/concurrency"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","distance":0.248},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2554},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","distance":0.2625},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.2751},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.2753}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-conversation-history","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","title":"Chat SDK now supports rich text in Telegram","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.1512},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1703},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","distance":0.1747},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1761},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","distance":0.1955}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-table-rendering-and-streaming-markdown","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","title":"Chat SDK now supports scheduled Slack messages","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/api/thread"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2022},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2256},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2483},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.254},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.2619}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-concurrent-message-handling","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-xchat","title":"Chat SDK now supports XChat","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","distance":0.1113},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1597},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.1664},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.1705},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.1747}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-reactions-and-ephemeral-messages-on-teams","title":"Chat SDK now supports reactions and ephemeral messages on Teams","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/emoji"},{"site":"chat-sdk","path":"/docs/ephemeral-messages"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.1985},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2151},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","distance":0.2198},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","distance":0.2258},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","distance":0.2283}],"related":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-rich-text-in-telegram","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-x-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-telegram-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-slack-enterprise-grid","title":"Chat SDK now supports Slack Enterprise Grid","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2189},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","distance":0.2713},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","distance":0.2734},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2755},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","distance":0.2768}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-supports-scheduled-slack-messages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","title":"Chat SDK now supports Vercel Connect","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-docs","path":"/docs/connect/concepts/triggers"},{"site":"vercel-kb","path":"/kb/guide/build-a-slack-bot-with-vercel-connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.162},{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1812},{"site":"chat-sdk","path":"/docs/vercel-connect","distance":0.1845},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","distance":0.2059}],"related":[{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","title":"Chat with Vercel Marketplace integrations using Vercel Agent","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","distance":0.1699},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","distance":0.1908},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.1984},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2102},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.216}],"related":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","title":"ChatGPT apps support on Vercel","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","distance":0.1527},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","distance":0.2056},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","distance":0.2546},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2578},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-openai-for-gpt-5-launch","distance":0.2667}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-openai-for-gpt-5-launch","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploying-ai-applications","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","title":"ChatGPT can now integrate with Vercel MCP","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server"},{"site":"vercel-docs","path":"/docs/deployments/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","distance":0.1984},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","distance":0.2056},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.2105},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2157},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2454}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","title":"Checkly Integration and Checks API now generally available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","distance":0.1861},{"site":"vercel-changelog","path":"/changelog/filter-checks-by-status-for-enhanced-troubleshooting","distance":0.202},{"site":"vercel-docs","path":"/docs/checks","distance":0.2232},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","distance":0.2787},{"site":"vercel-docs","path":"/docs/checks/checks-api","distance":0.2939}],"related":[{"site":"vercel-docs","path":"/docs/checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/checks-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/creating-checks","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-checks-by-status-for-enhanced-troubleshooting","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","title":"Checks API support added for Marketplace integration providers","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/checks"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/endform-joins-the-vercel-marketplace"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","distance":0.1861},{"site":"vercel-docs","path":"/docs/checks","distance":0.1938},{"site":"vercel-docs","path":"/docs/checks/checks-api","distance":0.257},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.2594},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.2635}],"related":[{"site":"vercel-docs","path":"/docs/checks/checks-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/creating-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-checks-by-status-for-enhanced-troubleshooting","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/choose-ip-visibility-for-log-drains","title":"Choose IP visibility for Log Drains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","distance":0.3096},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.3111},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","distance":0.3195},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-the-vercel-firewall","distance":0.3228},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","distance":0.34}],"related":[{"site":"vercel-docs","path":"/docs/drains/security","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/refined-logging","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claim-deployments","title":"Claim Deployments now available for fast and secure deployment transfers","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli"},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claimed-deployments-now-include-third-party-resources","distance":0.1538},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","distance":0.1707},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2723},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2799},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","distance":0.2882}],"related":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claimed-deployments-now-include-third-party-resources","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claimed-deployments-now-include-third-party-resources","title":"Claimed deployments now include third-party resources","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/claim-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claim-deployments","distance":0.1538},{"site":"vercel-docs","path":"/docs/deployments/claim-deployments","distance":0.2183},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","distance":0.277},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3043},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.3044}],"related":[{"site":"vercel-changelog","path":"/changelog/claim-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/transfer-marketplace-resources-between-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","title":"Claude Opus 4.1 is now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.0574},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.1002},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","distance":0.1059},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","distance":0.1082},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.1149}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-code-and-cursor-agent-no-longer-require-a-team-seat","title":"Claude Code and Cursor Agent no longer require a team seat","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","distance":0.3006},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","distance":0.307},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","distance":0.3463},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","distance":0.3482},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.3485}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-code-max-via-ai-gateway-available-now-for-claude-code","title":"Claude Code Max via AI Gateway, available now for Claude Code","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-support-for-claude-code","distance":0.1425},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.2384},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","distance":0.244},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.2504},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.2543}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-support-for-claude-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-design-and-vercel","title":"Deploy from Claude Design to Vercel","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/claude-design"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/claude-design","distance":0.1769},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2384},{"site":"vercel-changelog","path":"/changelog/vercel-drop","distance":0.268},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","distance":0.2978},{"site":"vercel-web","path":"/blog/deploy-button","distance":0.3058}],"related":[{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/import-claude-design-from-url","via":"neighbor"},{"site":"vercel-web","path":"/blog/iterating-from-design-to-deploy","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drop","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-jekyll-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-drop","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","title":"Claude Fable 5.1 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","distance":0.0877},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.093},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.1224},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","distance":0.1302},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","distance":0.1347}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","title":"Claude Fable 5 access restored on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","distance":0.1092},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-suspended-on-ai-gateway","distance":0.127},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.1347},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.2065},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.2128}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-suspended-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-suspended-on-ai-gateway","title":"Claude Fable 5 access suspended on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","distance":0.127},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","distance":0.2015},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.2391},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.2945},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.3197}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","title":"Claude Fable 5 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.0877},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","distance":0.1092},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1298},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.1395},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","distance":0.1398}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-access-restored-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","title":"Claude Haiku 4.5 now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.0844},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.1002},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","distance":0.1188},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","distance":0.1314},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.1482}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","title":"Claude Haiku 5.5 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"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/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.1038},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.1188},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.1257},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.1302},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","distance":0.1699}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-managed-agents-with-chat-sdk","title":"Run Claude Managed Agents with Chat SDK","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-chat-sdk","distance":0.2069},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","distance":0.2178},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2613},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.2855},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-vercel-services","distance":0.2862}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/claude-managed-agents-vercel-services","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-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","title":"Claude Opus 4.5 now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.0574},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.0776},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.0844},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","distance":0.0854},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","distance":0.1201}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","title":"Use Claude Opus 4.6 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","distance":0.0682},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.0776},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","distance":0.0994},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","distance":0.1011},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.1149}],"related":[{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","title":"Claude Opus 5.5 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","distance":0.0777},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.093},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","distance":0.1038},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.1186},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1205}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","title":"Claude Opus 5 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.0777},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","distance":0.1296},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1336},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.1359},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","distance":0.1398}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","title":"Claude Sonnet 4.6 is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.0994},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","distance":0.1107},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","distance":0.1212},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1424},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.1452}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-now-supports-1m-token-context-in-vercel-ai-gateway","title":"Claude Sonnet 4 now supports 1M token context in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","distance":0.1437},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","distance":0.1559},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.163},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1722}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","title":"Claude Sonnet 5.5 now available on AI Gateway","summary":null,"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/coding-agents"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","distance":0.107},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.1186},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.1224},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","distance":0.1257},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","distance":0.1452}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway","title":"Claude Sonnet 5 now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.107},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","distance":0.1107},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.1314},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-now-supports-1m-token-context-in-vercel-ai-gateway","distance":0.1437},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1546}],"related":[{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-now-supports-1m-token-context-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/clerk-joins-the-vercel-marketplace","title":"Clerk joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.2159},{"site":"vercel-web","path":"/blog/authentication-for-the-frontend-cloud","distance":0.2375},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2636},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.281},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","distance":0.2857}],"related":[{"site":"vercel-web","path":"/blog/authentication-for-the-frontend-cloud","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cli-archive-deployments-are-now-up-to-30-faster-with-split-tgz-archive","title":"CLI archive deployments are now up to 30% faster with split-tgz archive option","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/split-tgz-is-now-the-default-cli-archive-deployment-behavior"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/split-tgz-is-now-the-default-cli-archive-deployment-behavior","distance":0.0792},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2664},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.3045},{"site":"vercel-changelog","path":"/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli","distance":0.3057},{"site":"vercel-changelog","path":"/changelog/cli-deployment-limits-removed","distance":0.3072}],"related":[{"site":"vercel-changelog","path":"/changelog/split-tgz-is-now-the-default-cli-archive-deployment-behavior","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cli-deployment-limits-removed","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cli-deployment-limits-removed","title":"CLI deployment limits removed","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/limits"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2816},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2858},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","distance":0.3066},{"site":"vercel-changelog","path":"/changelog/cli-archive-deployments-are-now-up-to-30-faster-with-split-tgz-archive","distance":0.3072},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.3278}],"related":[{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cli-archive-deployments-are-now-up-to-30-faster-with-split-tgz-archive","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/clients-blocked-by-persistent-actions-now-receive-a-403-forbidden-response","title":"Clients blocked by persistent actions now receive a 403 Forbidden response","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-now-supports-persistent-actions","distance":0.2136},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2939},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.3504},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.355},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","distance":0.3598}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-now-supports-persistent-actions","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","title":"Cline is now available in the AI SDK harness layer","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline"},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cline","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.222},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2415},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2514},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","distance":0.2681}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"vercel-web","path":"/blog/cline-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cohere-provider-for-the-vercel-ai-sdk-now-available","title":"Cohere Provider for the Vercel AI SDK now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/azure-ai-provider-for-the-vercel-ai-sdk-now-available","distance":0.2244},{"site":"vercel-changelog","path":"/changelog/amazon-bedrock-provider-for-the-vercel-ai-sdk-now-available","distance":0.2476},{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","distance":0.3044},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","distance":0.3294},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.3414}],"related":[{"site":"vercel-kb","path":"/kb/guide/cohere-nextjs-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/cohere","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/azure-ai-provider-for-the-vercel-ai-sdk-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/amazon-bedrock-provider-for-the-vercel-ai-sdk-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen3-coder-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/command-menu-now-available-in-deployments","title":"Command Menu now available in Deployments","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/switch-between-branches-directly-from-deployments","distance":0.253},{"site":"vercel-changelog","path":"/changelog/quickly-navigate-the-dashboard-with-shortcuts","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","distance":0.2949},{"site":"vercel-web","path":"/blog/deploy-button","distance":0.3},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.3137}],"related":[{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/switch-between-branches-directly-from-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/quickly-navigate-the-dashboard-with-shortcuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/commenting-on-dns-records-is-now-available","title":"Commenting on DNS records is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/dns-records-ui","distance":0.1962},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","distance":0.2823},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.2975},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.3071},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","distance":0.32}],"related":[{"site":"vercel-web","path":"/blog/dns-records-ui","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/rest-api/dns/update-an-existing-dns-record","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","title":"Commenting on Previews is now in Public Beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.1133},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.1486},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","distance":0.1533},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","distance":0.2047},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","distance":0.214}],"related":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/emoji-reactions-now-available-in-preview-deployment-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","title":"Comments are now visible in your dashboard notifications","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","distance":0.2132},{"site":"vercel-docs","path":"/docs/comments","distance":0.2701},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","distance":0.2792},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","distance":0.2968},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","distance":0.3046}],"related":[{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-toolbar-comments-from-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","title":"Comments now available in Vercel's Slack integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2125},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","distance":0.2132},{"site":"vercel-changelog","path":"/changelog/new-slack-integration","distance":0.238},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.2521},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","distance":0.2528}],"related":[{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-toolbar-comments-from-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","title":"Comments on Preview Deployments are now generally available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","distance":0.1163},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.119},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","distance":0.1486},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","distance":0.1985},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","distance":0.2008}],"related":[{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/compliance-documents-are-now-available-in-team-settings","title":"Compliance documents are now available in Team settings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/security/compliance"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/attestations-and-compliance-report","distance":0.1897},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","distance":0.3028},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","distance":0.3231},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","distance":0.341},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","distance":0.3474}],"related":[{"site":"vercel-docs","path":"/docs/security/attestations-and-compliance-report","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/conformance-and-code-owners-are-now-generally-available-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/confidence-based-decision-fallbacks","title":"AI Gateway adds confidence-based decision fallbacks","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/decision-fallbacks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","distance":0.197},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/decision-fallbacks","distance":0.2368},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","distance":0.2536},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","distance":0.2767},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","distance":0.277}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","title":"Configurable Log Drains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","distance":0.2022},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.2091},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","distance":0.2105},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.2259},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","distance":0.2331}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","title":"Configurable webhooks ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","distance":0.1605},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","distance":0.2258},{"site":"vercel-docs","path":"/docs/webhooks","distance":0.2828},{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","distance":0.3309},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","distance":0.3424}],"related":[{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","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/creates-a-webhook","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","title":"Configure build machine settings across all projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","distance":0.2206},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2237},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","distance":0.2415},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","distance":0.2518},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","distance":0.2567}],"related":[{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","title":"Configure retention periods for deployments","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","distance":0.1521},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.1843},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.2159},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","distance":0.2303},{"site":"vercel-docs","path":"/docs/deployment-retention","distance":0.2427}],"related":[{"site":"vercel-docs","path":"/docs/deployment-retention","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configure-weighted-traffic-splits-for-vercel-flags-from-the-vercel-cli","title":"Configure weighted traffic splits for Vercel Flags from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","distance":0.2462},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","distance":0.2642},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","distance":0.2761},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","distance":0.2766},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","distance":0.3043}],"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-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-resolves-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configure-where-run-state-lives-in-vercel-workflows","title":"Configure where run state lives in Vercel Workflows","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/workflows","distance":0.285},{"site":"workflow","path":"/docs/foundations/versioning","distance":0.3364},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","distance":0.3499},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","distance":0.3537},{"site":"workflow","path":"/docs/whats-new","distance":0.3565}],"related":[{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"workflow","path":"/docs/whats-new","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/starting-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-run-background-jobs-in-nextjs-on-vercel","via":"neighbor"},{"site":"workflow","path":"/docs/observability/lifecycle-hooks","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/python","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/configure-which-sources-can-create-deployments-with-deployment-policies","title":"Configure which sources can create deployments with Deployment Policies","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/deployment-policy"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/deployment-policy","distance":0.2176},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","distance":0.3141},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","distance":0.329},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.3293},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","distance":0.3325}],"related":[{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/conformance-and-code-owners-are-now-generally-available-for-enterprise-teams","title":"Conformance and Code Owners are now generally available for Enterprise teams","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-conformance","distance":0.0983},{"site":"vercel-web","path":"/blog/vercel-spaces","distance":0.2381},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.3068},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.3276},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.3316}],"related":[{"site":"vercel-web","path":"/blog/introducing-conformance","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-spaces","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-plans-for-teams","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","title":"Connect Hasura APIs to your app, instantly","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2611},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.269},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","distance":0.2998},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.3035},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","distance":0.306}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/bitbucket","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","title":"Connect to and manage Sandboxes from the dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","distance":0.1619},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1867},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","distance":0.1953},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1962},{"site":"vercel-changelog","path":"/changelog/port-8080-is-now-available-in-vercel-sandboxes","distance":0.2089}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/port-8080-is-now-available-in-vercel-sandboxes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","title":"Connect v0 apps to Slack, Google, and 100+ other services","summary":null,"outbound":[{"site":"v0","path":"/docs/vercel-connect"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1351},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1575},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","distance":0.1599},{"site":"v0","path":"/docs/vercel-connect","distance":0.1662},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","distance":0.1695}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/connect-your-postgres-db-faster-with-thin-integration","title":"Connect your Postgres DB faster with Thin integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/railway-integration-postgres-redis-mysql","distance":0.3188},{"site":"vercel-changelog","path":"/changelog/improved-performance-for-vercel-postgres-from-edge-functions","distance":0.342},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.3421},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","distance":0.3517},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3709}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/railway-integration-postgres-redis-mysql","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-performance-for-vercel-postgres-from-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-postgres-connections","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","title":"Consolidated Build and Deployment settings","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2641},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2687},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.301},{"site":"vercel-changelog","path":"/changelog/new-configuration-overrides-available-per-deployment","distance":0.3039},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","distance":0.3111}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-configuration-overrides-available-per-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/consolidated-commit-status-now-available-for-github","title":"Consolidated Commit Status now available on GitHub","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","distance":0.2738},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2747},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","distance":0.3155},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","distance":0.3401},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","distance":0.3423}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/content-link-can-now-be-used-with-contentful","title":"Content Link can now be used with Contentful ","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations/cms/contentful"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-partner-program-updates"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","distance":0.28},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","distance":0.2863},{"site":"vercel-docs","path":"/docs/edit-mode","distance":0.2909},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","distance":0.2932},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","distance":0.2959}],"related":[{"site":"vercel-web","path":"/blog/vercel-partner-program-updates","via":"inbound"},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"vercel-web","path":"/blog/visual-editing","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sanity-innovating-on-a-faster-collaborative-web","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-web","path":"/blog/introducing-deploy-hooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-tinacms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-privatelink-is-now-available-on-pro-and-enterprise","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/control-who-can-manage-connectors-in-vercel-connect","title":"Control who can manage connectors in Vercel Connect","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","distance":0.2707},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","distance":0.2849},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.2955},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.296},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.3017}],"related":[{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/networking","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","title":"Convert Comments on deployments to Jira issues","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/convert-comments-to-github-issues","distance":0.1637},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","distance":0.2115},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","distance":0.2528},{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2574},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2941}],"related":[{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-to-github-issues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","title":"Convert Comments on Preview Deployments to Linear issues","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","distance":0.2115},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2222},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.2451},{"site":"vercel-changelog","path":"/changelog/convert-comments-to-github-issues","distance":0.2543},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","distance":0.2553}],"related":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-to-github-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/convert-comments-to-github-issues","title":"Convert comments to GitHub Issues","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","distance":0.1637},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","distance":0.2543},{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.261},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","distance":0.2817},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","distance":0.3274}],"related":[{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-deployments-to-jira-issues","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","title":"Convex joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.2779},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2844},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2847},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","distance":0.2848},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.292}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/clerk-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/copy-to-prompt-instructions-now-available-for-flags","title":"Copy-to-Prompt instructions now available for Flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.23},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2939},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.3192},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.3275},{"site":"vercel-changelog","path":"/changelog/authenticate-vercel-flags-with-openid-connect-by-default","distance":0.3298}],"related":[{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/authenticate-vercel-flags-with-openid-connect-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/copy-visual-context-to-agents","title":"Copy visual context to agents from Vercel Toolbar","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.3035},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.3053},{"site":"vercel-changelog","path":"/changelog/manage-vercel-toolbar-comments-from-the-cli","distance":0.311},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.3172},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.3212}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-toolbar-comments-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/corepack-experimental-is-now-available","title":"Corepack (experimental) is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","distance":0.2893},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","distance":0.3733},{"site":"vercel-changelog","path":"/changelog/experimental-build-mode-hono-express","distance":0.3859},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","distance":0.3874},{"site":"vercel-kb","path":"/kb/guide/corepack-errors-github-actions","distance":0.3944}],"related":[{"site":"vercel-kb","path":"/kb/guide/corepack-errors-github-actions","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/experimental-build-mode-hono-express","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/correcting-request-urls-with-python-serverless-functions","title":"Correcting Request URLs with Python Serverless Functions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/functions-tab","distance":0.3838},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.3875},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","distance":0.3877},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.3901},{"site":"vercel-changelog","path":"/changelog/build-and-function-logs-now-render-ansi-color-codes-nicely","distance":0.3933}],"related":[{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-dev","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-function-logs-now-render-ansi-color-codes-nicely","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/correlate-logs-and-traces-with-opentelemetry-in-vercel-log-drains","title":"Correlate logs and traces with OpenTelemetry in Vercel Log Drains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/drains/using-drains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.2378},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","distance":0.2447},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","distance":0.2582},{"site":"vercel-changelog","path":"/changelog/new-relic-integration-now-supports-traces-from-opentelemetry","distance":0.2899},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.3012}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-relic-integration-now-supports-traces-from-opentelemetry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","title":"Create and share queries with notebooks in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/notebooks"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.1549},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","distance":0.2076},{"site":"vercel-docs","path":"/docs/notebooks","distance":0.2148},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","distance":0.2333},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2334}],"related":[{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","title":"Create custom WAF rules directly from the Vercel Firewall tab","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.1824},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2082},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2232},{"site":"vercel-changelog","path":"/changelog/instantly-redirect-traffic-using-custom-vercel-firewall-rules","distance":0.2273},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2438}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-redirect-traffic-using-custom-vercel-firewall-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/create-private-blob-stores-with-a-single-click-in-v0","title":"Create private blob stores with a single click in v0","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","distance":0.1543},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.1856},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.2136},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.2191},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.2207}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/create-search-presets-for-your-runtime-logs","title":"Create search presets for your Runtime Logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.3344},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.3516},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.3798},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.3936},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.3969}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/30-day-runtime-log-retention-now-available-in-observability-plus","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","title":"Create Vercel Firewall rules with natural language","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.1732},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","distance":0.1824},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2039},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","distance":0.2077},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules","distance":0.2112}],"related":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/generate-a-firewall-rule-from-natural-language","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/suspicious-traffic-in-specific-countries","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-redirect-traffic-using-custom-vercel-firewall-rules","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-support-100-per-project-on-every-plan","title":"Cron jobs now support 100 per project on every plan","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","distance":0.1998},{"site":"vercel-web","path":"/blog/cron-jobs","distance":0.2475},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","distance":0.2774},{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.285},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","distance":0.2925}],"related":[{"site":"vercel-web","path":"/blog/cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","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-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cron-jobs-from-deployment-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","title":"Cron Jobs now visible in Deployment Summary","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/run-cron-jobs-from-deployment-summary","distance":0.1256},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","distance":0.2081},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","distance":0.2605},{"site":"vercel-web","path":"/blog/cron-jobs","distance":0.2684},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.2897}],"related":[{"site":"vercel-web","path":"/blog/cron-jobs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cron-jobs-from-deployment-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-now-show-billable-duration-and-cpu-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/csv-export-in-web-analytics","title":"CSV Export in Web Analytics","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.2969},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","distance":0.2972},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.3097},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.3295},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.3297}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cubic-joins-the-vercel-agents-marketplace","title":"cubic joins the Vercel Agents Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.2615},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2772},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","distance":0.2849},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.2857},{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.2933}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","title":"Cursor is now available in the AI SDK harness layer","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cursor","distance":0.2049},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2545},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.277},{"site":"vercel-changelog","path":"/changelog/cursor-now-supported-on-vercel-mcp","distance":0.2831},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2987}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/cursor","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/cursor","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cursor-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cursor-now-supported-on-vercel-mcp","title":"Cursor now supported on Vercel MCP","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.2265},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2613},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","distance":0.2831},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2839},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2842}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","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/ai-gateway/coding-agents/cursor","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","title":"Custom Environments are now available on Vercel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/additional-custom-environments-can-now-be-purchased","distance":0.1534},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","distance":0.1938},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","distance":0.2017},{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.2178},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2301}],"related":[{"site":"vercel-docs","path":"/docs/deployments/environments","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/additional-custom-environments-can-now-be-purchased","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/environment/retrieve-custom-environments","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","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-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","title":"Native Marketplace integrations now support custom environments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/marketplace-api"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/product-integration"},{"site":"vercel-docs","path":"/docs/marketplace-storage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","distance":0.2238},{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.2495},{"site":"vercel-changelog","path":"/changelog/additional-custom-environments-can-now-be-purchased","distance":0.2567},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2861}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/additional-custom-environments-can-now-be-purchased","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-marketplace-credentials-with-production-only-access","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","title":"Custom events now available for Web Analytics","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.1653},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.1882},{"site":"vercel-changelog","path":"/changelog/track-server-side-custom-events-with-vercel-web-analytics","distance":0.2029},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","distance":0.2823},{"site":"vercel-docs","path":"/docs/analytics/custom-events","distance":0.3038}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/custom-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/track-server-side-custom-events-with-vercel-web-analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-metrics-are-now-supported-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/utm-parameter-support-in-web-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","title":"Custom firewall rules for IP blocking","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2095},{"site":"vercel-changelog","path":"/changelog/restrict-access-with-ip-blocking-by-cidr-range","distance":0.2369},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","distance":0.2564},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.2668},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.2669}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-access-with-ip-blocking-by-cidr-range","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-metrics-are-now-supported-in-vercel-observability","title":"Custom metrics are now supported in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability/custom-metrics"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/observability/custom-metrics","distance":0.1787},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2251},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2321},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.245},{"site":"vercel-changelog","path":"/changelog/metrics-for-outgoing-requests","distance":0.272}],"related":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/metrics-for-outgoing-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-oidc-token-audiences","title":"Custom OIDC Token Audiences","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/oidc/reference","distance":0.2941},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","distance":0.3009},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","distance":0.3069},{"site":"vercel-docs","path":"/docs/oidc","distance":0.3254},{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","distance":0.3332}],"related":[{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/azure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trusted-sources-for-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway","title":"Custom reporting now available on AI Gateway","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/drama-3-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off"},{"site":"vercel-changelog","path":"/changelog/gemini-4-argon-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/hy4-preview-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/nemotron-3-ultra-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sakana-fugu-ultra-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/seedream-5-0-pro-is-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/unified-reporting-for-your-ai-spend","distance":0.0731},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","distance":0.2646},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","distance":0.2686},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2847},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2878}],"related":[{"site":"vercel-web","path":"/blog/unified-reporting-for-your-ai-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/custom-reporting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-production-index-june-2026","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/custom-tags-available-in-beta-on-vercel-sandbox","title":"Custom tags available in beta on Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags","distance":0.1801},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","distance":0.2051},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","distance":0.2694},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","distance":0.2839},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2876}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/tags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/customizing-the-install-command-while-creating-projects","title":"Customizing the Install Command while creating Projects","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","distance":0.1908},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2782},{"site":"vercel-docs","path":"/docs/package-managers","distance":0.3069},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","distance":0.3085},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.3106}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","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-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/per-environment-and-per-branch-build-commands","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/build-features","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","title":"CVE-2025-30218","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","distance":0.1159},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.152},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.1587},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.2096},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","distance":0.2176}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","title":"CVE-2025-32421","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.135},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.1749},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.1983},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.2107},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.2128}],"related":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","title":"CVE-2025-48068","summary":null,"outbound":[{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/allowedDevOrigins"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1659},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.1868},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.1979},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.1989},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","distance":0.1999}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-48985-input-validation-bypass-on-ai-sdk","title":"CVE-2025-48985: Input Validation Bypass on AI SDK","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.2519},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.2566},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.2945},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.3049},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","distance":0.3075}],"related":[{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","title":"CVE-2025-49005","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.1403},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1597},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.1676},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","distance":0.1749},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.1861}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","title":"CVE-2025-49826","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","distance":0.135},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.1403},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.1414},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1665},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.1756}],"related":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-52662-xss-on-nuxt-devtools","title":"CVE-2025-52662: XSS on Nuxt DevTools","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","distance":0.2075},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.2295},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.2943},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","distance":0.2952},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.2979}],"related":[{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-32421","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","title":"CVE-2025-55173","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.0673},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.154},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","distance":0.1541},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.1756},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1777}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","title":"Summary of CVE-2025-55182","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","distance":0.065},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.066},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.1175},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","distance":0.1218},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1933}],"related":[{"site":"vercel-web","path":"/blog/resources-for-protecting-against-react2shell","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","title":"CVE-2025-57752","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.0673},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.1414},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","distance":0.1674},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.1676},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1757}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","title":"CVE-2025-57822","summary":null,"outbound":[{"site":"nextjs","path":"/docs/app/api-reference/functions/next-response"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.1394},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","distance":0.152},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.1597},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","distance":0.1629},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.1652}],"related":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/dark-mode-expanded-search-and-more-in-grep","title":"Dark mode, expanded search, and more repositories in Grep","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/search-any-public-github-repo-with-grep","distance":0.2023},{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js","distance":0.2633},{"site":"vercel-web","path":"/blog/vercel-acquires-grep","distance":0.2755},{"site":"vercel-web","path":"/blog/grep-a-million-github-repositories-via-mcp","distance":0.3452},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.416}],"related":[{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-grep","via":"neighbor"},{"site":"vercel-web","path":"/blog/grep-a-million-github-repositories-via-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-any-public-github-repo-with-grep","via":"neighbor"},{"site":"vercel-web","path":"/blog/next3","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-optimized-package-imports-in-next-js","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-now-includes-diff-view-to-review-code-changes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","title":"New dashboard redesign is now the default","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.0741},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.2024},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","distance":0.2072},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2241},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","distance":0.2614}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","title":"Find teams, projects, and pages in the Vercel dashboard with universal search","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.2441},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","distance":0.282},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.2828},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.2849},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2886}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/data-downloaded-by-vercel-sandbox-is-now-free","title":"Data downloaded by Vercel Sandbox is now free","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-calculates-snapshot-storage-costs-daily","distance":0.2304},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","distance":0.2493},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","distance":0.284},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2884},{"site":"vercel-changelog","path":"/changelog/simplified-file-retrieval-from-vercel-sandbox-environments","distance":0.294}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-calculates-snapshot-storage-costs-daily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/simplified-file-retrieval-from-vercel-sandbox-environments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","title":"Declaring feature flags in code","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/feature-flags","distance":0.1275},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.1659},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.1764},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.178},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.1818}],"related":[{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/flags-as-code-in-next-js","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","title":"Deep Agents and OpenCode are now available in the AI SDK Harness","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/deepagents"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode"},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.1635},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/opencode","distance":0.2193},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.2206},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.2212},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2221}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","title":"DeepSeek models now available via Azure on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-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/api-keys"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.1424},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","distance":0.1849},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.1929},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","distance":0.1946},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.203}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","title":"DeepSeek V3.2 models now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.1429},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.1837},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","distance":0.1929},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.1997},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2104}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","title":"DeepSeek V4.1 Flash now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.1253},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","distance":0.1316},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.1837},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.1862}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-is-90-off-through-novita","title":"DeepSeek V4 Flash is 90% off through Novita on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.1907},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.1974},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","distance":0.2218},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","distance":0.2342},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.2366}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","title":"DeepSeek V4 Flash now runs updated weights on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","distance":0.0776},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.158},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","distance":0.1946},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","distance":0.2071}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","title":"DeepSeek V4 Flash Vision Experimental now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.1316},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.1578},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","distance":0.2071},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","distance":0.2167},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-is-90-off-through-novita","distance":0.2218}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-is-90-off-through-novita","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","title":"Deepseek V4 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.1253},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","distance":0.1334},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","distance":0.1424},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.1429},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","distance":0.1578}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-with-vision-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-pro-now-runs-updated-weights-on-ai-gateway","title":"DeepSeek V4 Pro now runs updated weights on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","distance":0.0776},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.1334},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","distance":0.1849},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.2321},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.235}],"related":[{"site":"vercel-changelog","path":"/changelog/deepseek-v4-flash-now-runs-updated-weights-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-models-now-available-via-azure-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","title":"Dependencies can now be installed with a custom command","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/customizing-the-install-command-while-creating-projects","distance":0.1908},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","distance":0.2914},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2924},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","distance":0.2973},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","distance":0.3012}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/dependencies-from-package-json-missing-after-install","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/customizing-the-install-command-while-creating-projects","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-configuration-overrides-available-per-deployment","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploy-cursor-origin-repositories-with-vercel-in-public-beta","title":"Deploy Cursor Origin repositories with Vercel in public beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.2875},{"site":"vercel-web","path":"/blog/bitbucket","distance":0.3248},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.3367},{"site":"vercel-changelog","path":"/changelog/vercel-drop","distance":0.3393},{"site":"vercel-web","path":"/blog/changelog-june-2020","distance":0.3398}],"related":[{"site":"vercel-web","path":"/blog/bitbucket","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-drop","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploy-hono-backends-with-zero-configuration","title":"Deploy Hono backends with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/hono","distance":0.1372},{"site":"vercel-kb","path":"/kb/guide/ship-a-hono-app-on-vercel","distance":0.2095},{"site":"vercel-kb","path":"/kb/guide/build-with-a-hono-starter-template","distance":0.2138},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","distance":0.2543},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2784}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"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-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hydrogen-2-remix-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hydrogen-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","title":"Deploy Node servers with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/zero-config","distance":0.2131},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","distance":0.2321},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","distance":0.2346},{"site":"vercel-changelog","path":"/changelog/deploy-hono-backends-with-zero-configuration","distance":0.2543},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","distance":0.2631}],"related":[{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-hono-backends-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","title":"Deploy steps are now up to 21% faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1184},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.1196},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","distance":0.1288},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.1552},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.1814}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","title":"Deploy to Vercel from Terraform","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9","distance":0.1509},{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","distance":0.2293},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","distance":0.2342},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","distance":0.2488},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","distance":0.2759}],"related":[{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","via":"neighbor"},{"site":"vercel-web","path":"/blog/behind-the-scenes-of-vercels-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9","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-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploy-xmcp-servers-with-zero-configuration","title":"Deploy xmcp servers with zero-configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","distance":0.2693},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.285},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2911},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2994},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.3008}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","title":"Deployment environment filtering now available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","distance":0.2174},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","distance":0.223},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/surfacing-the-environment-of-deployments-and-domains","distance":0.2797},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","distance":0.2995}],"related":[{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/surfacing-the-environment-of-deployments-and-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","title":"Deployment filters for project dashboard","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","distance":0.223},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","distance":0.2353},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2605},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","distance":0.2605}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-integration-actions-for-marketplace-integrations","title":"Deployment integration actions for Marketplace integrations","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/deployment-integration-action","distance":0.275},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","distance":0.3244},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","distance":0.3369},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.3458},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","distance":0.3464}],"related":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/approval-checklist","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-level-configuration-for-fluid-compute","title":"Deployment-level configuration for Fluid compute","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","distance":0.2156},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","distance":0.2612},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.2889},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","distance":0.2952},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.2966}],"related":[{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-takes-any-shape","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-unhandled-node-js-errors-in-fluid-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","title":"Deployment logs filtering now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","distance":0.2653},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","distance":0.2962},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","distance":0.3013},{"site":"vercel-changelog","path":"/changelog/inspect-your-deployment-source-and-build-output-files","distance":0.303},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","distance":0.3182}],"related":[{"site":"vercel-web","path":"/blog/refined-logging","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-your-deployment-source-and-build-output-files","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","title":"Deployment pages now display key configuration settings","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-level-configuration-for-fluid-compute","distance":0.2612},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.2939},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.3059},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","distance":0.3061},{"site":"vercel-changelog","path":"/changelog/surfacing-the-environment-of-deployments-and-domains","distance":0.31}],"related":[{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-level-configuration-for-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/surfacing-the-environment-of-deployments-and-domains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","title":"Deployment Protection is now enabled by default for new projects","summary":null,"outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.1302},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","distance":0.1395},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.1395},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.1524},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","distance":0.1636}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sitecore","via":"inbound"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"inbound"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"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-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-team-wide-defaults-for-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","title":"Deployment Protection now supports protected rewrites","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.1636},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.2151},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.2168},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","distance":0.2279}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"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/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","title":"Deployment retention policies now preserve active branch deployments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.2119},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","distance":0.2354},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","distance":0.2396},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.2478}],"related":[{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","title":"Deployment step now 10% faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"}],"inbound":[{"site":"vercel-web","path":"/blog/how-we-cut-cdn-metadata-lookup-latency-by-91-percent"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.1142},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.1288},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1892},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.1948},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.238}],"related":[{"site":"vercel-web","path":"/blog/how-we-cut-cdn-metadata-lookup-latency-by-91-percent","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","title":"Deployment step now 15% faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","distance":0.1142},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.1196},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.1398},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1579},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.1902}],"related":[{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","title":"Deployment Storage keeps your deployments rollback-ready","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployment-storage/optimize"},{"site":"vercel-docs","path":"/docs/instant-rollback"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-storage","distance":0.1492},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","distance":0.1581},{"site":"vercel-docs","path":"/docs/deployment-retention","distance":0.2213},{"site":"vercel-docs","path":"/docs/deployment-storage/optimize","distance":0.2238},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","distance":0.2259}],"related":[{"site":"vercel-docs","path":"/docs/deployment-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/releasing-safe-and-cost-efficient-blue-green-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","title":"Deployment Storage billing begins for existing Pro teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployment-storage"},{"site":"vercel-docs","path":"/docs/deployment-storage/optimize"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","distance":0.1581},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.1667},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","distance":0.2335},{"site":"vercel-docs","path":"/docs/deployment-storage","distance":0.2418},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.2501}],"related":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","title":"Deployments are now up to 7 seconds faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.1398},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.1552},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1643},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","distance":0.1948},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2059}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","title":"Deployments can now require cryptographically-verified commits","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.2634},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","distance":0.2713},{"site":"vercel-changelog","path":"/changelog/manually-create-deployments-by-commit-or-branch-in-the-dashboard","distance":0.2864},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2911},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2963}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manually-create-deployments-by-commit-or-branch-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deployments-now-show-billable-duration-and-cpu-minutes","title":"Deployments now show billable duration and CPU minutes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-a-deployment-by-id-or-url"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2671},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.2902},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","distance":0.2942},{"site":"vercel-web","path":"/blog/changelog-october-2019","distance":0.2973},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.3148}],"related":[{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deploys-are-now-up-to-33-faster-for-apps-with-many-isr-pages","title":"Deploys are now up to 33% faster for apps with many ISR pages","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/partial-prerendering"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","distance":0.1894},{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","distance":0.221},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.2439},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","distance":0.2618},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.267}],"related":[{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-hashicorp-developers-iterate-faster-with-isr","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-a-flexible-way-to-cache-dynamic-content","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections","title":"Deprecating the DHE cipher suite for TLS connections","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cdn-security/encryption"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","distance":0.3153},{"site":"vercel-changelog","path":"/changelog/upcoming-change-in-lets-encrypt-chain-of-trust","distance":0.3195},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.3395},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","distance":0.3442},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","distance":0.3773}],"related":[{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upcoming-change-in-lets-encrypt-chain-of-trust","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","title":"Detailed deployment summaries","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","distance":0.1538},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2443},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.2457},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.256},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2638}],"related":[{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/behind-the-scenes-of-vercels-infrastructure","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","title":"Detailed usage metrics are now available","summary":null,"outbound":[{"site":"vercel-web","path":"/pricing"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","distance":0.1343},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.138},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.1711},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","distance":0.1713},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.1714}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","title":"Detailed Usage metrics for Personal Accounts","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.1343},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.2035},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","distance":0.2334},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.2396},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.2468}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/one-click-linking-from-usage-to-vercel-observability-dashboards","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","title":"Developer role now available for Pro teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles"},{"site":"vercel-web","path":"/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.2398},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","distance":0.2623},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.2761},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.2797},{"site":"vercel-changelog","path":"/changelog/updated-permissions-for-developer-role","distance":0.2831}],"related":[{"site":"vercel-docs","path":"/docs/rbac/access-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-permissions-for-developer-role","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","title":"Device type support and improved breakdowns in Web Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/filtering"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.2494},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.289},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.3014},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.3022},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.3072}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp","title":"Devin, Raycast, Windsurf, and Goose now supported on Vercel MCP","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server"},{"site":"vercel-docs","path":"/docs/deployments/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.2013},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2171},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","distance":0.2587},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.26}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","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":"vercel-web","path":"/blog/building-efficient-mcp-servers","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-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/disable-git-integration-comments","title":"Disable Git Integration comments from the dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","distance":0.242},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.3055},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.3116},{"site":"vercel-web","path":"/blog/new-git-integration-settings","distance":0.3151},{"site":"vercel-web","path":"/blog/changelog-april-2020","distance":0.3298}],"related":[{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-april-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-fork-protection-can-now-be-disabled","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/discover-and-install-eve-integrations-from-the-cli","title":"Discover and install eve integrations from the CLI","summary":null,"outbound":[{"site":"eve","path":"/docs/install-integrations"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/install-integrations","distance":0.166},{"site":"vercel-changelog","path":"/changelog/eve-extensions","distance":0.2791},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","distance":0.2874},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","distance":0.3017},{"site":"eve","path":"/docs/extensions","distance":0.3059}],"related":[{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"eve","path":"/docs/getting-started","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-your-eve-agent-a-browser","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/docs-pages-support-markdown-responses","title":"Docs pages support Markdown responses","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.2539},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","distance":0.2613},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","distance":0.2634},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.3357},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","distance":0.3495}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-read-and-search-changelogs-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/domain-renewal-status-filtering","title":"Domain renewal status filtering now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.225},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","distance":0.2917},{"site":"vercel-changelog","path":"/changelog/auto-renewal-can-now-be-disabled-for-domains","distance":0.3049},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.3052},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.3086}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auto-renewal-can-now-be-disabled-for-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","title":"Domain Search is now available through the Vercel CLI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","distance":0.1632},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","distance":0.2082},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","distance":0.2181},{"site":"vercel-changelog","path":"/changelog/ai-domain-search-now-available-via-vercel-domains","distance":0.2333},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2394}],"related":[{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-domain-availability-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-domain-search-now-available-via-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/domains-can-now-be-redirected-with-a-custom-status-code","title":"Domains can now be redirected with a custom status code","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/redirecting-domains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/redirecting-domains","distance":0.3081},{"site":"vercel-docs","path":"/docs/routing/redirects","distance":0.3209},{"site":"vercel-changelog","path":"/changelog/domains-now-include-their-www-counterpart","distance":0.3316},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","distance":0.3393},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.3515}],"related":[{"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/configuration-redirects","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-now-include-their-www-counterpart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","title":"Domains can now easily be transferred out","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","distance":0.2405},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","distance":0.2856},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.2924},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.298},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2993}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","title":"Domains must now be managed at the team level","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2841},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","distance":0.2971},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.2997},{"site":"vercel-changelog","path":"/changelog/account-owned-domains-now-visible-in-team-scope-domains-tab","distance":0.3167},{"site":"vercel-web","path":"/blog/redirecting-domains","distance":0.3469}],"related":[{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-february-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/account-owned-domains-now-visible-in-team-scope-domains-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/domains-now-include-their-www-counterpart","title":"Domains now include their `www` counterpart","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2693},{"site":"vercel-web","path":"/blog/redirecting-domains","distance":0.2919},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.3005},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","distance":0.302},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","distance":0.305}],"related":[{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/deploying-and-redirecting","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/default-production-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/wildcard-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-be-redirected-with-a-custom-status-code","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/drama-3-now-available-on-ai-gateway","title":"Drama 3 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fish-audio-models-now-available-on-ai-gateway-for-free","distance":0.2462},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","distance":0.2747},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.2941},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.2958},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2962}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fish-audio-models-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-are-now-in-public-beta","title":"Drives for Vercel Sandbox are now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/regions"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-in-private-beta","distance":0.094},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","distance":0.1389},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","distance":0.1522},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-fuse-based-filesystems","distance":0.2652},{"site":"vercel-docs","path":"/docs/sandbox/concepts/regions","distance":0.2697}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-drives","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-in-private-beta","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives-eve-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/list-drives","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-fuse-based-filesystems","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-in-private-beta","title":"Drives for Vercel Sandbox in Private Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/vercel-drives"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-are-now-in-public-beta","distance":0.094},{"site":"vercel-docs","path":"/docs/sandbox/concepts/drives","distance":0.2091},{"site":"vercel-kb","path":"/kb/guide/vercel-drives","distance":0.2196},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","distance":0.2646},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","distance":0.2913}],"related":[{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-fuse-based-filesystems","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/dry-run-deployments-with-vercel-cli","title":"Dry-run deployments with Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","distance":0.2413},{"site":"vercel-changelog","path":"/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli","distance":0.2523},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2946},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2981},{"site":"vercel-changelog","path":"/changelog/vercel-drop","distance":0.2994}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-drop","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/dynamically-extend-timeout-of-an-active-sandbox","title":"Dynamically extend timeout of an active Sandbox","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","distance":0.1353},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","distance":0.1838},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.2636},{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","distance":0.2749},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","distance":0.2889}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/sandboxes/extend-session-timeout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","title":"Easier toolbar setup for SvelteKit and other Vite-based frameworks","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.1797},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","distance":0.2182},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.2284},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.2349},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost","distance":0.2379}],"related":[{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","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/in-production-and-localhost","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/vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/easily-access-vercel-brand-assets-and-guidelines","title":"Easily access Vercel Brand Assets and Guidelines","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","distance":0.3102},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.3299},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.3404},{"site":"vercel-changelog","path":"/changelog/claude-design-and-vercel","distance":0.3493},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.35}],"related":[{"site":"vercel-web","path":"/blog/zeit-is-now-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-design-and-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/easily-manage-custom-nameservers-for-domains","title":"Easily manage custom nameservers for domains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","distance":0.2231},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","distance":0.2837},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","distance":0.3113},{"site":"vercel-web","path":"/blog/dns-records-ui","distance":0.3177},{"site":"vercel-changelog","path":"/changelog/self-serve-delegation-of-subdomains","distance":0.3261}],"related":[{"site":"vercel-docs","path":"/docs/domains/managing-nameservers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-nameservers","via":"neighbor"},{"site":"vercel-web","path":"/blog/dns-records-ui","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-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-delegation-of-subdomains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","title":"Edge Config is now generally available ","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.0991},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","distance":0.1064},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.1163},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","distance":0.136},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config","distance":0.1622}],"related":[{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/backups-now-available-for-vercel-edge-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config","title":"Edge Config is now Global Config","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/global-config"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available"},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing"},{"site":"vercel-web","path":"/blog/edge-config-public-beta"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/global-config/migration-guide","distance":0.1045},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","distance":0.1622},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","distance":0.1992},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","distance":0.2016},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.2017}],"related":[{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"inbound"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"inbound"},{"site":"vercel-docs","path":"/docs/global-config/global-config-limits","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/global-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/backups-now-available-for-vercel-edge-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","title":"Edge Config is now in public beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","distance":0.136},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.139},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","distance":0.1491},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.1754},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.2391}],"related":[{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/backups-now-available-for-vercel-edge-config","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-function-metrics-now-available-in-monitoring","title":"Edge Function metrics now available in Monitoring","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.2122},{"site":"vercel-changelog","path":"/changelog/observability-for-edge-requests-now-includes-more-traffic-parameters","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.251},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.2568},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","distance":0.2582}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-for-edge-requests-now-includes-more-traffic-parameters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","title":"Edge Functions are now available in Public Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.0609},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.0804},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.1519},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.1755},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","distance":0.1808}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","title":"Edge Functions are now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.0804},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.1044},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","distance":0.1147},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.1155},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.1283}],"related":[{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","title":"Edge Middleware and Edge Functions are now powered by Vercel Functions","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-with-active-cpu-pricing-for-fluid-compute"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.1155},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.1496},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.1509},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.1519},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.1571}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edge-requests-are-now-called-cdn-requests","title":"Edge Requests are now called CDN Requests","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.299},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","distance":0.309},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","distance":0.3292},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","distance":0.3349},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.3384}],"related":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-function-metrics-now-available-in-monitoring","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","title":"Edit Git settings for all projects in a repo","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2668},{"site":"vercel-changelog","path":"/changelog/consolidated-commit-status-now-available-for-github","distance":0.2738},{"site":"vercel-web","path":"/blog/new-git-integration-settings","distance":0.2742},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","distance":0.287},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","distance":0.3067}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/consolidated-commit-status-now-available-for-github","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-projects-grouped-by-git-repository-with-list-view","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","title":"Elastic build machines now available in beta","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects"},{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","distance":0.0745},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","distance":0.1768},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","distance":0.2226},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2237},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.227}],"related":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","title":"Elastic Build Machines is now GA","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta"},{"site":"vercel-docs","path":"/docs/builds"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/basic-build-machines"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.0745},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","distance":0.1883},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","distance":0.2004},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","distance":0.2063},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2415}],"related":[{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","title":"Elastic Build Machines now protect against out of memory builds","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.1768},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","distance":0.1883},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-use-turborepo-cache-hits-to-prevent-downgrades","distance":0.2522},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2784},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.2837}],"related":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-use-turborepo-cache-hits-to-prevent-downgrades","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-use-turborepo-cache-hits-to-prevent-downgrades","title":"Elastic build machines now use Turborepo cache hits to prevent downgrades","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","distance":0.2522},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2746},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","distance":0.2807},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","distance":0.2878},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","distance":0.3324}],"related":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","title":"Ember-1 from Fireworks now available on AI Gateway","summary":null,"outbound":[{"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/models-and-providers/automatic-caching"},{"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/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","distance":0.2661},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","distance":0.2726},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","distance":0.273},{"site":"vercel-changelog","path":"/changelog/pixel-canary-is-now-available-in-stealth-for-free-on-ai-gateway","distance":0.276},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","distance":0.2789}],"related":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pixel-canary-is-now-available-in-stealth-for-free-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/emoji-reactions-now-available-in-preview-deployment-comments","title":"Emoji reactions now available in Preview Deployment comments ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2408},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","distance":0.2464},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","distance":0.2547},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.2569},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","distance":0.2817}],"related":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","title":"Encrypted Client Hello (ECH) is now supported on Vercel CDN","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cdn-security/encryption"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","distance":0.2829},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.2876},{"site":"vercel-docs","path":"/docs/cdn-security","distance":0.295},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","distance":0.3076},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.3198}],"related":[{"site":"vercel-docs","path":"/docs/cdn-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/endform-joins-the-vercel-marketplace","title":"Endform joins the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","distance":0.3933},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","distance":0.3959},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","distance":0.3975},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","distance":0.3995},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.4006}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-can-i-run-end-to-end-tests-after-my-vercel-preview-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ab-testing-with-nextjs-and-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/resend-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enforce-consistent-code-for-agents-and-humans-with-konsistent","title":"Enforce consistent code for agents and humans with konsistent","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/conformance-and-code-owners-are-now-generally-available-for-enterprise-teams","distance":0.4083},{"site":"vercel-web","path":"/blog/introducing-conformance","distance":0.4111},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.4229},{"site":"vercel-web","path":"/blog/introducing-agent-plugins","distance":0.4241},{"site":"vercel-web","path":"/blog/introducing-react-best-practices","distance":0.4255}],"related":[{"site":"vercel-web","path":"/blog/introducing-conformance","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-agent-plugins","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-react-best-practices","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-run","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-md-outperforms-skills-in-our-agent-evals","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/conformance-and-code-owners-are-now-generally-available-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","title":"Enhanced audience metrics now available in Vercel Analytics","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","distance":0.1553},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2052},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.2245},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.2335},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","distance":0.2544}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","title":"Enhanced Builds now have double the compute","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.1699},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","distance":0.1824},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2442},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.2493},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2529}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-firewall-data-now-available-in-monitoring","title":"Enhanced firewall data now available in Monitoring","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.24},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.2659},{"site":"vercel-changelog","path":"/changelog/new-firewall-challenge-metrics-now-available","distance":0.2913},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","distance":0.2987},{"site":"vercel-changelog","path":"/changelog/ip-address-details-added-in-the-vercel-firewall-dashboard","distance":0.2999}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-firewall-challenge-metrics-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-address-details-added-in-the-vercel-firewall-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","title":"Enhanced geolocation information for Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.1644},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","distance":0.2357},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.2502},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.252},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","distance":0.2542}],"related":[{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","title":"Enhanced Logs to search, inspect, and share runtime logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","distance":0.1815},{"site":"vercel-changelog","path":"/changelog/30-day-runtime-log-retention-now-available-in-observability-plus","distance":0.2282},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2303},{"site":"vercel-docs","path":"/docs/logs/runtime","distance":0.2316},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2505}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/30-day-runtime-log-retention-now-available-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","title":"Enhanced observability on the Usage tab now in public beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/top-paths-in-the-usage-tab-are-now-generally-available","distance":0.1523},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.2464},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.2508},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.2609},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","distance":0.2613}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/top-paths-in-the-usage-tab-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","title":"Enhanced security with new API scopes for integrations","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/sunsetting-the-oauth2-integration-entrypoint"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.2549},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","distance":0.2553},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2849},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.2941},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.3001}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-export-audit-logs","title":"Enterprise customers can now export audit logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","distance":0.249},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2922},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.3207},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.3463}],"related":[{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-transfer-projects","title":"Enterprise customers can now transfer projects","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2203},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","distance":0.2489},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","distance":0.2561},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","distance":0.2934},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.3014}],"related":[{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enterprise-managed-users","title":"Enterprise Managed Users is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","distance":0.2479},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users","distance":0.2766},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","distance":0.2839},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","distance":0.3001},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.313}],"related":[{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-set-their-default-build-machine","title":"Enterprise teams can now set their default build machine","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","distance":0.2063},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2206},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2296},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","distance":0.2583},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2873}],"related":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/basic-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","title":"Enterprise teams can now ship faster without build queues","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.131},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.1347},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.1938},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","distance":0.2009},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.21}],"related":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/environment-variables-can-now-be-filtered","title":"Environment Variables can now be filtered","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","distance":0.2545},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.2872},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2933},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","distance":0.3066},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","distance":0.3066}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","title":"Environment variables now use Config and Secret types","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.1546},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.1809},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.1829},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","distance":0.2025},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2285}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"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-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-logs-now-redact-sensitive-environment-variable-values","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","title":"Environments Variables per Git branch","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.1977},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.2155},{"site":"vercel-docs","path":"/docs/environment-variables","distance":0.2473},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.2624},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.2786}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"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-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/evaluation-metrics-for-vercel-flags","title":"Evaluation metrics for Vercel Flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/evaluation-metrics","distance":0.1495},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2647},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-evaluates-flags-10x-faster","distance":0.274},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.2774},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.2789}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags","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","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/observability","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-evaluates-flags-10x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls","title":"eve adds new Slack event hooks and session controls","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/slack"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/slack","distance":0.2496},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel","distance":0.2569},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.2804},{"site":"eve","path":"/docs/channels/overview","distance":0.2844},{"site":"eve","path":"/docs/channels/custom","distance":0.2878}],"related":[{"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/custom","via":"neighbor"},{"site":"eve","path":"/docs/channels/chat-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"eve","path":"/docs/guides/hooks","via":"neighbor"},{"site":"eve","path":"/docs/channels/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","title":"Trace and debug eve agent sessions with Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/eve/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.174},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","distance":0.1933},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","distance":0.1934},{"site":"eve","path":"/docs/observability/agent-runs","distance":0.2169},{"site":"vercel-docs","path":"/docs/eve","distance":0.2362}],"related":[{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"eve","path":"/docs/guides/deployment/vercel","via":"neighbor"},{"site":"eve","path":"/docs/guides/dev-tui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel","title":"Use any Chat SDK adapter with eve","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","distance":0.1927},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","distance":0.2036},{"site":"eve","path":"/docs/channels/chat-sdk","distance":0.2161},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2391},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2456}],"related":[{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adapter-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-adds-new-slack-event-hooks-and-session-controls","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/eve-extensions","title":"Extend eve agents with installable extensions","summary":null,"outbound":[{"site":"eve","path":"/docs/extensions"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/extensions","distance":0.16},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","distance":0.1911},{"site":"vercel-changelog","path":"/changelog/give-your-eve-agent-a-browser","distance":0.2426},{"site":"eve","path":"/docs/code-extension","distance":0.2452},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","distance":0.2559}],"related":[{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/install-integrations","via":"neighbor"},{"site":"eve","path":"/docs/guides/self-modification","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-your-eve-agent-a-browser","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/every-push-now-receives-a-unique-url","title":"Every push now receives a new unique URL","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2767},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.2873},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2904},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2908},{"site":"vercel-web","path":"/blog/changelog-august-2020","distance":0.2987}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manually-create-deployments-by-commit-or-branch-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/exa-joins-vercel-ai-gateway-agent-marketplace","title":"Exa joins the Vercel AI Gateway and Agent Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve","distance":0.1709},{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","distance":0.3057},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","distance":0.3083},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","distance":0.3128},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","distance":0.32}],"related":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve","title":"Exa web search free through August 31 on AI Gateway and eve","summary":null,"outbound":[{"site":"eve","path":"/docs/concepts/default-harness"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/exa-joins-vercel-ai-gateway-agent-marketplace","distance":0.1709},{"site":"vercel-changelog","path":"/changelog/tako-search-is-free-on-ai-gateway-through-september-30th","distance":0.2741},{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","distance":0.299},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","distance":0.3091},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","distance":0.3169}],"related":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/exa-joins-vercel-ai-gateway-agent-marketplace","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tako-search-is-free-on-ai-gateway-through-september-30th","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments","title":"Exceeding included Image Optimization usage no longer pauses deployments","summary":null,"outbound":[{"site":"nextjs","path":"/docs/app/api-reference/components/image"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","distance":0.2392},{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","distance":0.281},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","distance":0.2969},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","distance":0.3153},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","distance":0.3218}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","title":"Expanded Audit Log coverage, now delivered through Vercel Drains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/activity-log"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-s3"},{"site":"vercel-docs","path":"/docs/drains/reference/audit-logs"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","distance":0.1124},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.1842},{"site":"vercel-docs","path":"/docs/audit-log/migrating-to-drains","distance":0.1964},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.2138},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","distance":0.2273}],"related":[{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"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/using-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","title":"Expanded Role-Based Access Control (RBAC) for Enterprise teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/extended-permissions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.1852},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","distance":0.2335},{"site":"vercel-docs","path":"/docs/rbac","distance":0.2349},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.2558}],"related":[{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"},{"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/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","title":"Expanded search for workflow runs in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","distance":0.2104},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","distance":0.2361},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","distance":0.2847},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.3205},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","distance":0.3458}],"related":[{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/experimental-build-mode-hono-express","title":"Experimental build mode for Hono and Express projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-docs","path":"/docs/frameworks/backend/hono"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","distance":0.3405},{"site":"vercel-changelog","path":"/changelog/deploy-hono-backends-with-zero-configuration","distance":0.3513},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.3696},{"site":"vercel-web","path":"/blog/zero-cls-experiments-nextjs-edge-config","distance":0.3748},{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.376}],"related":[{"site":"vercel-web","path":"/blog/zero-cls-experiments-nextjs-edge-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/exposeTestingApiInProductionBuild","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-hono-backends-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/experimental-native-binaries-for-vercel-cli","title":"Experimental native binaries for Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-dev-windows","distance":0.3335},{"site":"vercel-changelog","path":"/changelog/use-native-curl-syntax-with-vercel-cli","distance":0.3433},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.3644},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.3674},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","distance":0.3699}],"related":[{"site":"vercel-web","path":"/blog/vercel-dev-windows","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-dev","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-native-curl-syntax-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/expiration-dates-now-available-for-access-tokens","title":"Expiration dates now available for Access Tokens","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","distance":0.3331},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","distance":0.3565},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","distance":0.3635},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","distance":0.3862},{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.3897}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens","via":"neighbor"},{"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-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/explore-bot-traffic-data-now-in-monitoring-beta","title":"Explore bot traffic data, now in Monitoring Beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","distance":0.254},{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","distance":0.2758},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","distance":0.3026},{"site":"vercel-changelog","path":"/changelog/view-and-query-bot-verification-data-in-vercel-observability","distance":0.3072},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","distance":0.368}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-query-bot-verification-data-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/export-ai-gateway-traces-with-vercel-drains","title":"Export AI Gateway traces with Vercel Drains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/trace-drains","distance":0.1703},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","distance":0.2429},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","distance":0.2456},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.2535},{"site":"vercel-docs","path":"/docs/drains/reference/traces","distance":0.2567}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","title":"Export traces, web analytics events, and speed insights datapoints to any destination","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.1613},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","distance":0.2144},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","distance":0.2235},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2313},{"site":"vercel-changelog","path":"/changelog/export-ai-gateway-traces-with-vercel-drains","distance":0.2429}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-ai-gateway-traces-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/correlate-logs-and-traces-with-opentelemetry-in-vercel-log-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","title":"Export Observability query results to CSV or JSON","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/query"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2333},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2556},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2584},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","distance":0.2622},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2795}],"related":[{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/external-api-caching-insights-now-in-observability","title":"External API caching insights now in Observability","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","distance":0.2884},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2895},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","distance":0.2936},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2985}],"related":[{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/failed-payments-can-now-be-retried","title":"Failed payments can now be retried","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.3839},{"site":"vercel-changelog","path":"/changelog/invoices-are-now-available-on-a-dedicated-page","distance":0.3962},{"site":"vercel-web","path":"/blog/canceling-ongoing-deployments","distance":0.3982},{"site":"vercel-web","path":"/blog/advanced-invoice-settings","distance":0.4026},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.4146}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/canceling-ongoing-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-invoice-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invoices-are-now-available-on-a-dedicated-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/threshold-billing-is-now-enabled-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","title":"Fast Data Transfer for rewrites between your team's projects is now free","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fast-origin-transfer-is-now-automatically-compressed","distance":0.253},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","distance":0.2854},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-fast-data-transfer","distance":0.2931},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.3084},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","distance":0.3089}],"related":[{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-navigating-the-edge-network","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-origin-transfer-is-now-automatically-compressed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-fast-data-transfer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fast-mode-for-opus-4-7-available-on-ai-gateway","title":"Fast mode for Opus 4.7 available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/opus-4-6-fast-mode-available-on-ai-gateway","distance":0.0271},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-unified-fast-mode-support","distance":0.1639},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","distance":0.2369},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","distance":0.2406},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","distance":0.2412}],"related":[{"site":"vercel-changelog","path":"/changelog/opus-4-6-fast-mode-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-unified-fast-mode-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fast-origin-transfer-is-now-automatically-compressed","title":"Fast Origin Transfer is now automatically compressed","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","distance":0.253},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","distance":0.2908},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-fast-data-transfer","distance":0.293},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","distance":0.3054},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","distance":0.3076}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-navigating-the-edge-network","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-fast-data-transfer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","title":".fast, .you, .talk, and .to TLDs now available on Vercel Domains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2173},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","distance":0.2434},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2802},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","distance":0.2846}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fastapi-frontends-and-static-files-served-from-the-cdn","title":"FastAPI frontends and static files served from the CDN","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.2681},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.2928},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.3013},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.3026}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","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-web","path":"/blog/how-we-run-vercels-cdn-in-front-of-discourse","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fastapi-lifespan-events-are-now-supported-on-vercel","title":"FastAPI Lifespan Events are now supported on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.3096},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.3144},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","distance":0.3261},{"site":"vercel-changelog","path":"/changelog/fastapi-frontends-and-static-files-served-from-the-cdn","distance":0.3316},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.346}],"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-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fastapi-frontends-and-static-files-served-from-the-cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-available-for-python-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","title":"Faster and more reliable global propagation","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","distance":0.1561},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","distance":0.2137},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","distance":0.2299},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2324},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.261}],"related":[{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"inbound"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","title":"Faster and more reliable Managed Infrastructure","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/behind-the-scenes-of-vercels-infrastructure"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","distance":0.1561},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","distance":0.2261},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","distance":0.2501},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2633},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","distance":0.2675}],"related":[{"site":"vercel-kb","path":"/kb/guide/a-record-and-caa-with-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-cut-cdn-metadata-lookup-latency-by-91-percent","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","title":"Faster builds for monorepos","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2454},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2649},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.2665},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-per-branch-caching","distance":0.2742},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","distance":0.2764}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-per-branch-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","title":"Faster build times with optimized uploads","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1597},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.18},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.194},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.2059},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","distance":0.2106}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","title":"Faster builds for everyone","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1362},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.18},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.1902},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.1991},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.2044}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","title":"Faster builds now available with compute upgrades on paid plans","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","distance":0.1699},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","distance":0.1934},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","distance":0.2093},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.21}],"related":[{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","title":"Faster builds with improved caching","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.1864},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.2011},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.2059},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2204},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.2299}],"related":[{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-per-branch-caching","title":"Faster builds with per-branch caching","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.2313},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","distance":0.2742},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.2832},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.3116},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.3139}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","title":"Faster CDN proxying to external origins","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","distance":0.1821},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.2181},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","distance":0.2219},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","distance":0.278},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.2892}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"inbound"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-run-vercels-cdn-in-front-of-discourse","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","title":"Faster defaults for Vercel Function CPU and memory","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/manage-your-vercel-functions-cpu-and-memory-in-the-dashboard","distance":0.178},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.229},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.2466},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","distance":0.2669},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.2784}],"related":[{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-your-vercel-functions-cpu-and-memory-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lowering-default-serverless-function-timeout-in-enterprise-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","title":"Faster deploy times for large builds","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.1184},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.1323},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.1362},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.1579},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.1597}],"related":[{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","title":"Faster deploys with improved function caching","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.1323},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.1814},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.2256},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.2257},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2281}],"related":[{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-domain-aliasing-for-large-scale-multi-tenant-applications","title":"Faster domain aliasing for large-scale multi-tenant applications","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/nextjs-multi-tenant-application","distance":0.2717},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","distance":0.2831},{"site":"vercel-web","path":"/blog/platforms-starter-kit","distance":0.2884},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","distance":0.303},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/concepts","distance":0.3186}],"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-web","path":"/blog/platforms-starter-kit","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","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/quickstart","via":"neighbor"},{"site":"vercel-web","path":"/blog/algolia-cuts-build-times-in-half-with-isr-using-next-js-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-december-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","title":"Faster login flow and new Google Sign-in support","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","distance":0.254},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.2584},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","distance":0.3},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","distance":0.3297},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","distance":0.3483}],"related":[{"site":"vercel-web","path":"/blog/zeit-is-now-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","title":"Faster, predictable project linking in the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/link"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/project-linking","distance":0.2299},{"site":"vercel-changelog","path":"/changelog/vercel-cli-commands-now-scope-to-the-local-directory","distance":0.2358},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.2481},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2556},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.2618}],"related":[{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-commands-now-scope-to-the-local-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-time-to-start-for-v0-builds","title":"Faster time-to-start for v0 builds","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster","distance":0.1777},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.3069},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.3124},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.3162},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.3244}],"related":[{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-app","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","title":"Faster transformations and reduced pricing for Image Optimization","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization"},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","distance":0.1757},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","distance":0.1802},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","distance":0.2065},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.2152},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.2409}],"related":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"inbound"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"inbound"},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fasthtml-htmx-python-vercel","title":"FastHTML projects can now be deployed with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.2896},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.2933},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.2964},{"site":"vercel-changelog","path":"/changelog/hydrogen-projects-can-now-be-deployed-with-zero-configuration","distance":0.3047},{"site":"vercel-web","path":"/blog/zero-config","distance":0.3114}],"related":[{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-fastapi-starter-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hydrogen-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hydrogen-2-remix-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","title":"Favorite teams and projects to appear in your dashboard","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","distance":0.2438},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.2484},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2666},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.2856},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.2967}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","title":"Filesystem snapshots supported on Vercel Sandboxes","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1915},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2041},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","distance":0.2064},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","distance":0.2076}],"related":[{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-snapshots-for-faster-sandbox-startup","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","title":"Filter Analytics traffic data","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.2322},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.2335},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.245},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","distance":0.2494},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.259}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"inbound"},{"site":"vercel-docs","path":"/docs/analytics/filtering","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-speed-insights","title":"Filter by custom date ranges in Speed Insights","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.1941},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","distance":0.244},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2599},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","distance":0.267},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","distance":0.2857}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/package","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","title":"Filter by custom date ranges in Web Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-speed-insights","distance":0.1941},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.245},{"site":"vercel-changelog","path":"/changelog/csv-export-in-web-analytics","distance":0.2969},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","distance":0.3022},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.3112}],"related":[{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-speed-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/csv-export-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-checks-by-status-for-enhanced-troubleshooting","title":"Filter Checks by status for enhanced troubleshooting","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","distance":0.202},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","distance":0.3162},{"site":"vercel-docs","path":"/docs/checks","distance":0.343},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","distance":0.3491},{"site":"vercel-docs","path":"/docs/checks/creating-checks","distance":0.3514}],"related":[{"site":"vercel-docs","path":"/docs/checks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/creating-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/checks-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","title":"Filter deployments by author","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","distance":0.2324},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","distance":0.2353},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2911},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","distance":0.2995},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","distance":0.3182}],"related":[{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-for-your-own-requests-in-logs","title":"Filter for your own requests in Logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.2696},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.2937},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.3019},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.323},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.324}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filter-runtime-logs-for-fatal-function-errors","title":"Filter runtime logs for fatal function errors","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","distance":0.3373},{"site":"vercel-changelog","path":"/changelog/view-logs-over-time-with-new-time-series-chart","distance":0.3391},{"site":"vercel-changelog","path":"/changelog/filter-for-your-own-requests-in-logs","distance":0.3434},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.3435},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","distance":0.3602}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-logs-over-time-with-new-time-series-chart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-for-your-own-requests-in-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/filters-are-persisted-for-vercel-analytics","title":"Filters are persisted for Vercel Analytics","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.2842},{"site":"vercel-docs","path":"/docs/analytics/filtering","distance":0.3572},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","distance":0.3819},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","distance":0.3857},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.3873}],"related":[{"site":"vercel-docs","path":"/docs/analytics/filtering","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","title":"Find deployments faster with redesigned filters","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2071},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","distance":0.2174},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","distance":0.2324},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","distance":0.2653}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-deployments-by-author","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/firecrawl-joins-the-vercel-marketplace","title":"Firecrawl joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.3194},{"site":"vercel-changelog","path":"/changelog/browserbase-joins-the-vercel-agent-marketplace","distance":0.3342},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.3424},{"site":"vercel-changelog","path":"/changelog/cubic-joins-the-vercel-agents-marketplace","distance":0.3431},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","distance":0.3456}],"related":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/browserbase-joins-the-vercel-agent-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cubic-joins-the-vercel-agents-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/algolia-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","title":"Firefox extension for Vercel Toolbar","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","distance":0.1895},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.1908},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","distance":0.1971},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.2472},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.2582}],"related":[{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","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-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fish-audio-models-now-available-on-ai-gateway-for-free","title":"Fish Audio models now available on Vercel AI Gateway for free","summary":null,"outbound":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/drama-3-now-available-on-ai-gateway","distance":0.2462},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2473},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","distance":0.2647},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/fish-audio","distance":0.2719},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","distance":0.2759}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/drama-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flags-explorer-is-now-generally-available","title":"Flags Explorer is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer","distance":0.1983},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.209},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","distance":0.2125},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2199},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","distance":0.2294}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/set-up-flags-explorer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recommend-branch-based-feature-flag-overrides","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","title":"Flags SDK 3.0","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/npm-i-flags","distance":0.0969},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","distance":0.1823},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","distance":0.1942},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.1979}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","title":"Flags SDK 3.2","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","distance":0.1986},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","distance":0.2306},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","distance":0.2333},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-evaluates-flags-10x-faster","distance":0.2442}],"related":[{"site":"flags-sdk","path":"/docs/api-reference/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit/precompute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-evaluates-flags-10x-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-evaluates-flags-10x-faster","title":"Flags SDK now evaluates flags 10x faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/npm-i-flags","distance":0.2264},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","distance":0.2411},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","distance":0.2442},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2451}],"related":[{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next/bulk-evaluation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","title":"Flags SDK now supports OpenFeature","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"flags-sdk","path":"/docs/providers/openfeature","distance":0.1768},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","distance":0.1823},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","distance":0.1899},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2192},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","distance":0.2291}],"related":[{"site":"flags-sdk","path":"/docs/providers/openfeature","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/go","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/flagd","via":"neighbor"},{"site":"vercel-web","path":"/blog/flags-as-code-in-next-js","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-in-limited-beta","title":"Flat Rate CDN in Limited Beta","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn","distance":0.1254},{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-is-now-ga-for-pro-teams","distance":0.1266},{"site":"vercel-docs","path":"/docs/pricing/flat-rate-cdn","distance":0.2047},{"site":"vercel-docs","path":"/docs/cdn","distance":0.2768},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","distance":0.2947}],"related":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/flat-rate-cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-is-now-ga-for-pro-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-is-now-ga-for-pro-teams","title":"Flat Rate CDN is now GA for Pro teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/pricing/flat-rate-cdn"},{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn"}],"inbound":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn","distance":0.1225},{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-in-limited-beta","distance":0.1266},{"site":"vercel-docs","path":"/docs/pricing/flat-rate-cdn","distance":0.2026},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.2884},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","distance":0.297}],"related":[{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-in-limited-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","title":"Fluid compute is now the default for new projects","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"inbound":[{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.1106},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.1342},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","distance":0.1495},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","distance":0.1583},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","distance":0.1983}],"related":[{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"inbound"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-level-configuration-for-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-unhandled-node-js-errors-in-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-pricing-with-active-cpu-pricing-for-fluid-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","title":"Fluid compute now supports ISR background and on-demand revalidation","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","distance":0.1495},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.1746},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.1876},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","distance":0.2087},{"site":"vercel-changelog","path":"/changelog/improved-unhandled-node-js-errors-in-fluid-compute","distance":0.2223}],"related":[{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-unhandled-node-js-errors-in-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","title":"FLUX.2 Pro image model is now available on Vercel AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.1172},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","distance":0.1462},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","distance":0.2355},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","distance":0.2477},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.257}],"related":[{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","title":"FLUX 3 Image now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","distance":0.1462},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.1993},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","distance":0.225},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","distance":0.2285},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","distance":0.2906}],"related":[{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","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","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/frankfurt-germany-is-now-available-on-the-edge-network","title":"Frankfurt (Germany) is now available on the Edge Network","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","distance":0.269},{"site":"vercel-changelog","path":"/changelog/osaka-japan-is-now-available-on-the-edge-network","distance":0.2876},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3337},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.3401},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.3557}],"related":[{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/fra1","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/osaka-japan-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","title":"Free Vercel BotID Deep Analysis through January 15","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-botid","distance":0.1825},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.1837},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","distance":0.1905},{"site":"vercel-web","path":"/blog/botid-deep-analysis-catches-a-sophisticated-bot-network-in-real-time","distance":0.2131},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","distance":0.235}],"related":[{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-web","path":"/blog/botid-deep-analysis-catches-a-sophisticated-bot-network-in-real-time","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-against-token-theft","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams","title":"Free domain for one year, now for all Pro teams","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","distance":0.0888},{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","distance":0.1115},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","distance":0.154},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","distance":0.2444},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.2742}],"related":[{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","title":"Free domain now included with new Pro subscriptions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams","distance":0.0888},{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","distance":0.121},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","distance":0.1792},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","distance":0.2846},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.2878}],"related":[{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","title":"Vercel Remote Cache is now free","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/limits/fair-use-guidelines"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.1709},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.1911},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.2478},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.2726},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","distance":0.2913}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/purge-your-remote-caches-build-and-ci-artifacts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","title":"Free Viewer seats now available on Pro","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based"},{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.1761},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2181},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","distance":0.2623},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","distance":0.2738},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","distance":0.2796}],"related":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn","via":"inbound"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/billing-role-on-pro","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","title":"Full Sandbox egress firewall now available on Hobby plan","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall"}],"inbound":[{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox"},{"site":"vercel-web","path":"/blog/everything-hackable-will-get-hacked"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","distance":0.1714},{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","distance":0.2186},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","distance":0.2683},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2844}],"related":[{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","via":"inbound"},{"site":"vercel-web","path":"/blog/everything-hackable-will-get-hacked","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/function-invocations-now-billed-per-unit","title":"Function invocations now billed per unit","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","distance":0.2814},{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers","distance":0.3194},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","distance":0.3211},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","distance":0.3245},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","distance":0.3251}],"related":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/updated-v0-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/function-start-type-now-available-in-runtime-logs","title":"Function start type now available in Runtime Logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.332},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.3333},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.3339},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.3359},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","distance":0.3407}],"related":[{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/fx-ai-sdk-harness-adapter","title":"fx is now available in the AI SDK harness layer","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx","distance":0.2163},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2701},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.2762},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.2806},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2848}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/fx","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/fx","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","title":"Gemini 3.1 Flash Lite is now on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.0737},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.074},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.1024},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","distance":0.1259},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","distance":0.1374}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","title":"Gemini 3.1 Pro is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.1091},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.1374},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.1494},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","distance":0.1534},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.1534}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","title":"Gemini 3.5 Flash on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.0737},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.0805},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.0934},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","distance":0.1062},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.1251}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-transcribe-now-available-on-ai-gateway","title":"Gemini 3.5 Transcribe now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.1687},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","distance":0.1789},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","distance":0.1966},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.2455},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","distance":0.2503}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","title":"Gemini 3.6 Flash and Gemini 3.5 Flash-Lite are now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.074},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","distance":0.0754},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.0824},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.0934},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.1128}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","title":"Gemini 3.7 Flash now available on AI Gateway for 50% off","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.0754},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.0834},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.0931},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.1062},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.1259}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","title":"Gemini 3.8 Flash now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","distance":0.0834},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.1038},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.1128},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.1251},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.1378}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","title":"Gemini 3.8 Live models now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","distance":0.1494},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","distance":0.151},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.1645},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.1655},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-transcribe-now-available-on-ai-gateway","distance":0.1687}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-transcribe-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-text-to-speech-models-now-available-on-ai-gateway","title":"Gemini 3.8 text-to-speech models now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.151},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.1609},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.1745},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.1845},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.1884}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","title":"Gemini 3 Flash is now available on the Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.0805},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.0824},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","distance":0.0931},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.094},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","distance":0.1024}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-7-flash-now-available-on-ai-gateway-for-50-off","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-flash-lite-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","title":"Gemini 3 Pro now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.094},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","distance":0.1091},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","distance":0.1183},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.1645},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.1679}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-1-pro-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-4-argon-now-available-on-ai-gateway","title":"Gemini 4 Argon now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"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/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"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.1642},{"site":"vercel-changelog","path":"/changelog/gemma-4-on-ai-gateway","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.2009},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.2061},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.2163}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemma-4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemini-ai-chatbot-with-generative-ui-support","title":"Gemini AI Chatbot with Generative UI support","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/ai-sdk-3-generative-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","distance":0.2033},{"site":"vercel-web","path":"/blog/introducing-chatbot","distance":0.2395},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","distance":0.2585},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","distance":0.2838},{"site":"ai-sdk","path":"/cookbook/guides/gemini","distance":0.294}],"related":[{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/gemini","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/gpt-3-app-next-js-vercel-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gemma-4-on-ai-gateway","title":"Gemma 4 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-4-argon-now-available-on-ai-gateway","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.2087},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.2135},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","distance":0.2155},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","distance":0.2278}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-4-argon-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-flash-is-now-available-on-the-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","title":"Generate shareable snapshots of Observability charts","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","distance":0.2458},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2833},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","distance":0.286},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2874}],"related":[{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","title":"Get instant observability with the New Relic integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-relic-integration-now-supports-traces-from-opentelemetry","distance":0.2435},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.2627},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.2887},{"site":"vercel-web","path":"/blog/introducing-monitoring","distance":0.3029},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","distance":0.3034}],"related":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-relic-integration-now-supports-traces-from-opentelemetry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/add-real-time-analytics-to-your-application-with-tinybird-integration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/get-started-faster-with-the-new-project-creation-flow","title":"Get started faster with the new Project Creation Flow","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","distance":0.2439},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2695},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.2775},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.2849},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2889}],"related":[{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/quickly-navigate-the-dashboard-with-shortcuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/git-fork-protection-can-now-be-disabled","title":"Git Fork Protection can now be disabled","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","distance":0.2775},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.2982},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","distance":0.321},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.3259},{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","distance":0.3267}],"related":[{"site":"vercel-docs","path":"/docs/project-configuration/security-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/git-lfs-support","title":"Git LFS support","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","distance":0.1893},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.2826},{"site":"vercel-web","path":"/blog/new-git-integration-settings","distance":0.2911},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","distance":0.3032},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","distance":0.3334}],"related":[{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-fork-protection-can-now-be-disabled","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","title":"Git repositories can now be searched for and imported easily","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/git"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","distance":0.2024},{"site":"vercel-web","path":"/blog/new-git-integration-settings","distance":0.2044},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2461},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","distance":0.2483},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2772}],"related":[{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-started-faster-with-the-new-project-creation-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-lfs-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","title":"GitHub Copilot is now available in the AI SDK harness layer","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.2161},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2221},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","distance":0.2266},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.2311},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","distance":0.2396}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","title":"Give your eve agent GitHub tools","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","distance":0.0966},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","distance":0.1885},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.2177},{"site":"vercel-docs","path":"/docs/eve","distance":0.222},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","distance":0.2449}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"eve","path":"/docs/channels/github","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","title":"GitHub tools are now an installable eve extension","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/github-tools-eve","distance":0.0966},{"site":"vercel-changelog","path":"/changelog/eve-extensions","distance":0.1911},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","distance":0.1925},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","distance":0.2234},{"site":"eve","path":"/docs/code-extension","distance":0.2489}],"related":[{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/software-factory-browser","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-your-eve-agent-a-browser","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server","title":"Agents can now access protected deployments via Vercel’s MCP server","summary":null,"outbound":[{"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/vercel-authentication"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp"},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/agents-can-now-access-runtime-logs-with-vercels-mcp-server","distance":0.2174},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2211},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2418},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.2517},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.28}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agents-can-now-access-runtime-logs-with-vercels-mcp-server","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","title":"Give every agent in Herdr its own Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/herdr","distance":0.149},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","distance":0.154},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","distance":0.2493},{"site":"vercel-changelog","path":"/changelog/vercel-ai-gateway-and-vercel-sandbox-now-available-on-hermes-agent","distance":0.2512}],"related":[{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ai-gateway-and-vercel-sandbox-now-available-on-hermes-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-multiple-isolated-agents-in-a-single-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/give-your-eve-agent-a-browser","title":"Give your eve agent a browser","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/eve-extensions","distance":0.2426},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","distance":0.2579},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","distance":0.2674},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","distance":0.2783},{"site":"vercel-docs","path":"/docs/eve","distance":0.2876}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"eve","path":"/docs/code-extension","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-browser-agent","via":"neighbor"},{"site":"eve","path":"/docs/extensions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/software-factory-browser","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/use-eve-agent-svelte","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-extensions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","title":"GLM-4.7 available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","distance":0.1164},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.1251},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.1413},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1455},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.1562}],"related":[{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","title":"GLM 5.2 Fast via Wafer now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.1344},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1471},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.1521},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.1777},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","distance":0.1993}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-2-free-for-eve-agents-through-august-27-via-blackbox-on-ai-gateway","title":"GLM 5.2 free for eve agents through August 27 via Blackbox on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-is-35-off-via-novita-on-ai-gateway","distance":0.2127},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.2178},{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.238},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.2463}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-is-35-off-via-novita-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-2-is-35-off-via-novita-on-ai-gateway","title":"GLM 5.2 is 35% off via Novita on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","distance":0.1838},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.1922},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1937},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.1996},{"site":"vercel-changelog","path":"/changelog/glm-5-2-free-for-eve-agents-through-august-27-via-blackbox-on-ai-gateway","distance":0.2127}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-free-for-eve-agents-through-august-27-via-blackbox-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","title":"GLM 5.2 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.0586},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.073},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.092},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","distance":0.1344},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.1562}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","title":"GLM 5.3 Flash now available on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.1243},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1852},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.1963},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","distance":0.2105},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.214}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","title":"GLM 5.3 FlashX now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","distance":0.1243},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.142},{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","distance":0.1472},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.1714}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-3-is-50-off-through-digitalocean-on-ai-gateway","title":"GLM-5.3 is 50% off through DigitalOcean on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.1472},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1574},{"site":"vercel-changelog","path":"/changelog/glm-5-2-is-35-off-via-novita-on-ai-gateway","distance":0.1838},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.2061},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.2147}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-is-35-off-via-novita-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","title":"GLM 5.3 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.073},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.0811},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.0977},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.1455},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","distance":0.1471}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-fast-via-wafer-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","title":"GLM-5 is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.0594},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.092},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.0977},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.1413},{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","distance":0.1468}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","title":"GLM 5.1 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.0586},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.0594},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.0811},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","distance":0.1145},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.1251}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glm-5v-turbo-on-ai-gateway","title":"GLM 5V Turbo on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.1145},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.1474},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.1579},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1608},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.1758}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/glyph-cluster-is-now-available-in-stealth-for-free-on-ai-gateway","title":"Glyph Cluster is now available in stealth for free on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"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/sdks-and-apis/responses/tool-calling"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-docs","path":"/docs/plans"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pixel-canary-is-now-available-in-stealth-for-free-on-ai-gateway","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","distance":0.2393},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.2395},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","distance":0.2408},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.2508}],"related":[{"site":"vercel-changelog","path":"/changelog/pixel-canary-is-now-available-in-stealth-for-free-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","title":"GPT 5.1 Codex Max now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","distance":0.0446},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.0485},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.0995},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.122},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.1455}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","title":"GPT 5.1 Codex models now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","distance":0.0485},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","distance":0.0539},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.1014},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1039},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.1064}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","title":"GPT 5.1 models now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.0748},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.0778},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.1135},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.1255},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.1458}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","title":"GPT 5.2 Codex now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","distance":0.0446},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.0539},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.0702},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1284},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.157}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-openai-for-gpt-5-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","title":"GPT 5.2 models now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.0737},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.0748},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.0924},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.1039},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.1047}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-chat-is-now-on-ai-gateway","title":"GPT 5.3 Chat is now on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.1721},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.1738},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1787},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.2125},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.2327}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","title":"GPT 5.3 Codex is now on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","distance":0.0702},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","distance":0.0995},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.1014},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.1093},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.1345}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","title":"GPT 5.4 is now on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.046},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.1093},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.148},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.1601}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","title":"GPT 5.6 Sol, Luna, and Terra now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","distance":0.1125},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","distance":0.1494},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1585},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.1614},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.1721}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","title":"GPT-5.6 Sol is 50% off on AI Gateway for the next month","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","distance":0.0547},{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","distance":0.1734},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","distance":0.1919},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","distance":0.2109},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","distance":0.219}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","title":"GPT-5.6 Sol is now 50% off a lower price","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month"},{"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/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","distance":0.0547},{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","distance":0.1749},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","distance":0.1892},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","distance":0.1992},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","distance":0.2219}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","title":"GPT-5, GPT-5-mini, and GPT-5-nano are now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.0737},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.0778},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.1001},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.1016},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.1064}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-openai-for-gpt-5-launch","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","title":"GPT 5.5 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.046},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.0924},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.1217},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","distance":0.1345},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.1458}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-codex-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","title":"GPT-6.1 Sol now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","distance":0.0675},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","distance":0.1734},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","distance":0.1749},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","distance":0.1772},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","distance":0.1775}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","title":"GPT 6 Astra now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","distance":0.1753},{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","distance":0.1772},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","distance":0.1856},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","distance":0.187},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1935}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-6-sol-and-luna-now-available-on-ai-gateway","title":"GPT-6 Sol and Luna now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-6-1-sol-now-available-on-ai-gateway","distance":0.0675},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","distance":0.1125},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","distance":0.1753},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","distance":0.219},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","distance":0.2219}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-50-off-on-ai-gateway-for-the-next-month","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-6-sol-is-now-50-percent-off-a-lower-price","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","title":"GPT Image 2.5 Flare and Sunburst now available on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","distance":0.2168},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.2212},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","distance":0.2263},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","distance":0.2285},{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","distance":0.2477}],"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/modalities/image-generation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","title":"GPT Image 2 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1935},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","distance":0.1974},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.2078},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.211},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","distance":0.2173}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-live-1-now-available-on-ai-gateway","title":"GPT-Live 1 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime/gpt-live"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime/gpt-live","distance":0.1967},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","distance":0.2188},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","distance":0.2244},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2497},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.2506}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-chat-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","title":"gpt-oss-20b and gpt-oss-120b are now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.1001},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","distance":0.1077},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1179},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.1255},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.1457}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/granular-branch-matching-for-git-configuration-in-vercel-json","title":"Granular branch matching for Git configuration in vercel.json","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","distance":0.2638},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","distance":0.3108},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","distance":0.3279},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","distance":0.332},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","distance":0.3323}],"related":[{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-gitlab","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","title":"Grok 3 now available on Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","distance":0.0793},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","distance":0.135},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","distance":0.1983},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","distance":0.2013},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.2094}],"related":[{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","title":"Grok 4.1 Fast models now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.0918},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.0965},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.1012},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","distance":0.1175},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","distance":0.1753}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","title":"Try Grok 4.20 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.0769},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","distance":0.0778},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.0826},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.0965},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","distance":0.1485}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","title":"Grok 4.3 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.062},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.0778},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.0825},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.1175},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","distance":0.1603}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","title":"Grok 4.5 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.0457},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.0769},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","distance":0.0825},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.1012},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","distance":0.1487}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","title":"Grok 4.6 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.0457},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","distance":0.062},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.0826},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.0918},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","distance":0.1257}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-4-7-now-available-and-40-off-on-ai-gateway-fx-eve","title":"Grok 4.7 now available on AI Gateway, fx, and eve","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.1257},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.1485},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.1487},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","distance":0.1603},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.1753}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-build-0-1-now-available-on-vercel-ai-gateway","title":"Grok Build 0.1 now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","distance":0.1834},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.1834},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.1983},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.1992},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.2031}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","title":"Grok Build is now available in the AI SDK harness layer","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","distance":0.2028},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2396},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2406},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.2519},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.2555}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/grok-build","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-0-1-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","title":"Grok Imagine Image 2.0 now available on Vercel AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","distance":0.1616},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","distance":0.1943},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","distance":0.1974},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.2119},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.2381}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","title":"Grok Imagine Video 1.5 Lite on AI Gateway","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/ai-sdk-core/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","distance":0.0756},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.1111},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","distance":0.1943},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.205},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","distance":0.2159}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","title":"Grok Imagine Video 1.5 on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","distance":0.0756},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.1219},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","distance":0.1616},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.1912},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.2047}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","title":"Grok Imagine Video on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"}],"inbound":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","distance":0.1111},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.1168},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","distance":0.1219},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/video-editing","distance":0.1848},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","distance":0.1969}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","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/video-extension","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":"/docs/ai-sdk-core/video-generation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-image-2-0-preview-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/grok-voice-think-fast-2-0-now-available-on-ai-gateway","title":"Grok Voice Think Fast 2.0 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","distance":0.1534},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.1927},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","distance":0.2033},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.2074},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","distance":0.2099}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-20-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","title":"Groq, fal, and DeepInfra join the Vercel Marketplace ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.183},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","distance":0.1859},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","distance":0.187},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","distance":0.2013},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.2042}],"related":[{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","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-web","path":"/blog/deploying-ai-applications","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","title":"Growthbook joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","distance":0.2426},{"site":"vercel-changelog","path":"/changelog/hypertune-joins-the-vercel-marketplace","distance":0.2725},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.2834},{"site":"vercel-changelog","path":"/changelog/posthog-joins-the-vercel-marketplace","distance":0.2859},{"site":"vercel-changelog","path":"/changelog/launchdarkly-is-now-available-on-the-vercel-marketplace","distance":0.2927}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/growthbook","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hypertune-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/posthog-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/launchdarkly-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/headless-commerce-with-the-swell-integration","title":"Headless commerce with the Swell integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.318},{"site":"vercel-web","path":"/blog/your-guide-to-headless-commerce","distance":0.3409},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.3418},{"site":"vercel-web","path":"/blog/introducing-next-js-commerce-2-0","distance":0.3433},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.3479}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/your-guide-to-headless-commerce","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-next-js-commerce-2-0","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-innovators-are-going-headless","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-shopify-storefronts-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","title":"Higher defaults and limits for Vercel Functions running Fluid compute","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-with-active-cpu-pricing-for-fluid-compute"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes"},{"site":"vercel-docs","path":"/docs/functions/limitations"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.1751},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.1805},{"site":"vercel-docs","path":"/docs/fluid-compute","distance":0.2015},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","distance":0.211},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.217}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hints-now-available-when-creating-environment-variables","title":"Hints now available when creating Environment Variables","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/design-engineering-at-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","distance":0.2921},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2935},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.3171},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.3302}],"related":[{"site":"vercel-web","path":"/blog/design-engineering-at-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hipaa-baas-are-now-available-to-pro-teams","title":"HIPAA BAAs are now available to Pro teams","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","distance":0.2048},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","distance":0.2055},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2584},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.2809},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.3398}],"related":[{"site":"vercel-kb","path":"/kb/guide/hipaa-compliance-guide-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-terms-of-service-march-2026","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-legal-terms-june-2026","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","title":"Hobby customers can now select their preferred region for Serverless Functions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/serverless-functions-are-now-deployed-to-us-east-by-default","distance":0.273},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","distance":0.3063},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.3212},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","distance":0.3265},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3481}],"related":[{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/serverless-functions-are-now-deployed-to-us-east-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","title":"Hobby projects now default to 30-day deployment retention","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","distance":0.1434},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.2066},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.2104},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","distance":0.2354}],"related":[{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","title":"Hobby projects now retain fewer deployments to free up storage","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployment-storage"},{"site":"vercel-docs","path":"/docs/deployment-storage/optimize"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","distance":0.1434},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.2211},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","distance":0.2259},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","distance":0.2335},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.2472}],"related":[{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","title":"Hostname support in Web Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics/filtering"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.2322},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","distance":0.289},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","distance":0.3112},{"site":"vercel-changelog","path":"/changelog/filter-for-your-own-requests-in-logs","distance":0.323},{"site":"vercel-changelog","path":"/changelog/utm-parameter-support-in-web-analytics","distance":0.3234}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-for-your-own-requests-in-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/utm-parameter-support-in-web-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/html-element-attribution-in-speed-insights","title":"HTML element attribution in Speed Insights","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/demystifying-inp-new-tools-and-actionable-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2666},{"site":"vercel-changelog","path":"/changelog/speed-insights-deprecates-first-input-delay-on-november-first","distance":0.3012},{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","distance":0.32},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","distance":0.3315},{"site":"vercel-docs","path":"/docs/speed-insights/metrics","distance":0.3448}],"related":[{"site":"vercel-web","path":"/blog/demystifying-inp-new-tools-and-actionable-insights","via":"inbound"},{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-deprecates-first-input-delay-on-november-first","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-support-for-interaction-to-next-paint-experimental","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","title":"HTTPS DNS records are now supported in Vercel DNS","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/commenting-on-dns-records-is-now-available","distance":0.2823},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","distance":0.3076},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.3084},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","distance":0.316},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","distance":0.3203}],"related":[{"site":"vercel-web","path":"/blog/dns-records-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-dns","via":"neighbor"},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/commenting-on-dns-records-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hy4-preview-now-available-on-ai-gateway","title":"Hy4 Preview now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","distance":0.2508},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.255},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.2669},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.2678},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","distance":0.2686}],"related":[{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hydrogen-2-remix-vercel","title":"Hydrogen 2 projects can now be deployed with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hydrogen-projects-can-now-be-deployed-with-zero-configuration","distance":0.026},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.2611},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2732},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2918},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.2927}],"related":[{"site":"vercel-changelog","path":"/changelog/hydrogen-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hydrogen-projects-can-now-be-deployed-with-zero-configuration","title":"Hydrogen projects can now be deployed with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hydrogen-2-remix-vercel","distance":0.026},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.2783},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2888},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2923},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","distance":0.2928}],"related":[{"site":"vercel-changelog","path":"/changelog/hydrogen-2-remix-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hypertune-integration-available-for-low-latency-experimentation","title":"Hypertune integration available for low latency experimentation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hypertune-joins-the-vercel-marketplace","distance":0.201},{"site":"vercel-changelog","path":"/changelog/split-integration-for-low-latency-experimentation","distance":0.3201},{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","distance":0.3375},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.3377},{"site":"flags-sdk","path":"/docs/providers/hypertune","distance":0.3383}],"related":[{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/hypertune","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hypertune-joins-the-vercel-marketplace","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/hypertune","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-google-optimize","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/split-integration-for-low-latency-experimentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/hypertune-joins-the-vercel-marketplace","title":"Hypertune joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hypertune-integration-available-for-low-latency-experimentation","distance":0.201},{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","distance":0.2706},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","distance":0.2725},{"site":"flags-sdk","path":"/docs/providers/hypertune","distance":0.2907},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.308}],"related":[{"site":"flags-sdk","path":"/docs/providers/hypertune","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hypertune-integration-available-for-low-latency-experimentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/posthog-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","title":"Image-only models available in Vercel AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","distance":0.1172},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","distance":0.1993},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","distance":0.2078},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","distance":0.2162},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2191}],"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","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flux-2-pro-image-model-is-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/imessage-support-for-eve-agents","title":"iMessage support for eve agents","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/photon"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/photon","distance":0.2139},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-linq","distance":0.2902},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","distance":0.2917},{"site":"vercel-web","path":"/blog/agent-stack","distance":0.2923},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","distance":0.3054}],"related":[{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-linq","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/import-turborepo-nx-and-rush-monorepos-with-zero-configuration","title":"Import Turborepo, Nx, and Rush monorepos with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","distance":0.2725},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.2802},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.2825},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.2911},{"site":"vercel-web","path":"/blog/monorepos","distance":0.297}],"related":[{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/nx","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/intelligent-ignored-builds-using-turborepo","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","title":"Improved infrastructure security with Vercel Secure Compute","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vpc-peering-now-available-as-self-service-for-vercel-secure-compute","distance":0.1787},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","distance":0.1892},{"site":"vercel-web","path":"/blog/vercel-security","distance":0.19},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","distance":0.2318},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","distance":0.232}],"related":[{"site":"vercel-web","path":"/blog/vercel-security","via":"inbound"},{"site":"vercel-web","path":"/blog/optimizing-secure-builds-with-hive-and-secure-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vpc-peering-now-available-as-self-service-for-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-accuracy-for-vercel-analytics-charts","title":"Improved accuracy for Vercel Analytics charts","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/curve-fitting-for-charts-better-visualizations-for-vercel-analytics"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/curve-fitting-for-charts-better-visualizations-for-vercel-analytics","distance":0.2458},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","distance":0.2837},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.287},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.3002}],"related":[{"site":"vercel-web","path":"/blog/curve-fitting-for-charts-better-visualizations-for-vercel-analytics","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-made-the-vercel-dashboard-twice-as-fast","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-alerting-for-slack-integration","title":"Improved alerting for Slack Integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-slack-integration","distance":0.2059},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","distance":0.2978},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","distance":0.3339},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.3505},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","distance":0.351}],"related":[{"site":"vercel-changelog","path":"/changelog/new-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","title":"Improved analytics experience now available on the Vercel Firewall","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","distance":0.1464},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.1472},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","distance":0.1926},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2004},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.2008}],"related":[{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","title":"Improved build compute performance for Enterprise customers","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","distance":0.1824},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.1934},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2313},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","distance":0.2475}],"related":[{"site":"vercel-changelog","path":"/changelog/enhanced-builds-now-have-double-the-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","title":"Improved CDN Performance","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","distance":0.1821},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","distance":0.2137},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","distance":0.2261},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","distance":0.2504},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","distance":0.2517}],"related":[{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-cli-experience-when-linking-and-creating-environment-variables","title":"Improved CLI experience when linking and creating environment variables​​​​‌‍​‍​‍‌‍ ‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍​‌‍ ‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​‌‍‌‍‌‌‌‌‍​​‍‍‌‍​‌‍ ‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍ ​‍","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2911},{"site":"vercel-changelog","path":"/changelog/preserve-local-environment-variables-when-linking-with-the-vercel-cli","distance":0.3033},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","distance":0.3049},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","distance":0.3063},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.3252}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/manage-across-environments","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preserve-local-environment-variables-when-linking-with-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","title":"Improved dashboard navigation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.1846},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.2072},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.2368},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2731},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2984}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","title":"Improved data collection for Web Analytics and Speed Insights with resilient intake","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"},{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","distance":0.2282},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2343},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","distance":0.2667},{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","distance":0.2805},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","distance":0.2829}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/privacy-policy","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/package","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","title":"Improved domains page","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.1492},{"site":"vercel-changelog","path":"/changelog/domain-renewal-status-filtering","distance":0.225},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.2484},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","distance":0.2506},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","distance":0.2675}],"related":[{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-february-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-renewal-status-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","title":"Improved environment variables UI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2393},{"site":"vercel-changelog","path":"/changelog/environment-variables-can-now-be-filtered","distance":0.2545},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.2667},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","distance":0.2718},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","distance":0.2732}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-can-now-be-filtered","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","title":"Improved error messages for failed or canceled builds","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2558},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","distance":0.2876},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2886},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.2922},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.2979}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","title":"Improved experience for configuring ignored builds","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2831},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","distance":0.2855},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","distance":0.2876},{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","distance":0.2973},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3036}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-can-i-add-a-custom-build-step-to-my-project","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/customizing-the-install-command-while-creating-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-configuration-overrides-available-per-deployment","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","title":"Improved experience for managing project domains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/domains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.1492},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.205},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.2377},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","distance":0.2443},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","distance":0.2449}],"related":[{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","title":"Improved experience for moving between your teams and projects","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","distance":0.2438},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2577},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.2614},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.2711},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.279}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","title":"Improved formatting for Pull Request comments","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.1954},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2049},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.226},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.2413},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2471}],"related":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","title":"Improved hard caps for Spend Management","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing"},{"site":"vercel-web","path":"/pricing"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","distance":0.1392},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","distance":0.1514},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","distance":0.1885},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","distance":0.1953},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","distance":0.2301}],"related":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"inbound"},{"site":"vercel-web","path":"/pricing","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers","title":"Improved infrastructure pricing is now active for new customers","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/automatic-recursion-protection-for-vercel-serverless-functions"},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall"},{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","distance":0.1786},{"site":"vercel-web","path":"/blog/simpler-pricing","distance":0.256},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","distance":0.2979},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","distance":0.3007},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","distance":0.3015}],"related":[{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-managed-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","title":"Improved Live Mode in Runtime Logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.1915},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2438},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.2675},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.2741},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.2787}],"related":[{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","title":"Improved Log Drain filtering","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","distance":0.2022},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","distance":0.2236},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","distance":0.2471},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","distance":0.251}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/refined-logging","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","title":"Improved log visibility for function durations and memory","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updated-logging-limits-for-vercel-functions","distance":0.2454},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2538},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","distance":0.2699},{"site":"vercel-changelog","path":"/changelog/manage-your-vercel-functions-cpu-and-memory-in-the-dashboard","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.3014}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-logging-limits-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-your-vercel-functions-cpu-and-memory-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","title":"Improved logs available as public beta for Enterprise Teams","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/top-paths-in-the-usage-tab-are-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.1815},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-export-audit-logs","distance":0.249},{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","distance":0.2492},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","distance":0.2502},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2691}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-export-audit-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-logs-with-siem-integration-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","title":"Improved metrics search in Observability Plus","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2046},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2173},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2204},{"site":"vercel-changelog","path":"/changelog/custom-metrics-are-now-supported-in-vercel-observability","distance":0.2251},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2316}],"related":[{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-metrics-are-now-supported-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","title":"Improved monorepo support in Recent Previews","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","distance":0.194},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","distance":0.2592},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-with-increased-projects-per-repository","distance":0.2866},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2884},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2904}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-with-increased-projects-per-repository","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-with-increased-projects-per-repository","title":"Improved monorepo support with increased Projects per repository","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","distance":0.238},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2426},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","distance":0.2866},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","distance":0.3177},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","distance":0.3261}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","title":"Improved Node.js compatibility for Edge Middleware and Edge Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.1497},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.1509},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.1816},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.1949},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","distance":0.195}],"related":[{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-edge-runtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-flexible-environment-variables-in-edge-functions-and-middleware","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-performance-for-vercel-postgres-from-edge-functions","title":"Improved performance for Vercel Postgres from Edge Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/storage"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.2137},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","distance":0.2396},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.2444},{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.2467},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2561}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-resiliency-for-vercel-functions-with-failover-support","title":"Improved resiliency for Vercel Functions with inter-region failover support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","distance":0.2263},{"site":"vercel-web","path":"/blog/effortless-high-availability-for-dynamic-frontends","distance":0.2268},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.2373},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.2429}],"related":[{"site":"vercel-web","path":"/blog/effortless-high-availability-for-dynamic-frontends","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/update-regarding-vercel-service-disruption-on-august-7-2024","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-security-with-automation-testing-now-available-on-all-plans","title":"Improved security with automation testing now available on all plans","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/protection-bypass-for-automation-multiple-secrets","distance":0.1939},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.2191},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.2211},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.2293},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","distance":0.2492}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protection-bypass-for-automation-multiple-secrets","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","title":"Improved Speed Insights experience","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/package"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","distance":0.2035},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.2107},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","distance":0.2146},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","distance":0.2343}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo","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","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","title":"Improved streaming runtime logs exports","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/logs/runtime"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2098},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.2398},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","distance":0.2438},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.2606}],"related":[{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-support-for-gatsby-sites","title":"Improved support for Gatsby sites","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/january-2023"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/nuxt-on-vercel","distance":0.2671},{"site":"vercel-web","path":"/blog/gatsby-analytics","distance":0.2679},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.2931},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","distance":0.3},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","distance":0.3003}],"related":[{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","title":"Improved support for pnpm, Corepack, and monorepos","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","distance":0.2555},{"site":"vercel-changelog","path":"/changelog/corepack-experimental-is-now-available","distance":0.2893},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","distance":0.3138},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.3156},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","distance":0.3161}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-web","path":"/blog/turbopack-moving-homes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/corepack-experimental-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","title":"Improved team onboarding experience","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2757},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2909},{"site":"vercel-changelog","path":"/changelog/request-access-to-teams-right-from-the-dashboard","distance":0.308},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.3109},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.3127}],"related":[{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/request-access-to-teams-right-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auto-add-git-committers-to-your-team","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","title":"Improved team overview page","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.1851},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2414},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.2518},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.2593}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","title":"Improved traffic visibility on Firewall overview page","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.1472},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","distance":0.1625},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","distance":0.1907},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2078},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","distance":0.2236}],"related":[{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-address-details-added-in-the-vercel-firewall-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-unhandled-node-js-errors-in-fluid-compute","title":"Improved unhandled Node.js errors in Fluid compute","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","distance":0.2204},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.2765},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.3007},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","distance":0.3233}],"related":[{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-benchmark-results","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-level-configuration-for-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-account-settings","title":"Improved user experience for Account Settings","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2935},{"site":"vercel-changelog","path":"/changelog/account-owned-domains-now-visible-in-team-scope-domains-tab","distance":0.2999},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.3216},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","distance":0.3226},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.3226}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/account-owned-domains-now-visible-in-team-scope-domains-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","title":"Improved user experience for Vercel documentation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.2161},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.2291},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2533},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.2554},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.2701}],"related":[{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","title":"Improved web notifications are now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/new-notification-controls-available-in-public-beta"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-notification-controls-available-in-public-beta","distance":0.1839},{"site":"vercel-web","path":"/blog/changelog-november-2019","distance":0.2847},{"site":"vercel-web","path":"/blog/changelog-june-2020","distance":0.306},{"site":"vercel-web","path":"/blog/changelog-august-2020","distance":0.3151},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.3155}],"related":[{"site":"vercel-web","path":"/blog/changelog-november-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvement-to-how-dates-display-in-the-dashboard","title":"Improvement to how dates display in the dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","distance":0.3743},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.3764},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","distance":0.4118},{"site":"vercel-changelog","path":"/changelog/improved-accuracy-for-vercel-analytics-charts","distance":0.414},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.4172}],"related":[{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-accuracy-for-vercel-analytics-charts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","title":"Improvements and fixes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/storage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.1363},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1517},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.1672},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.17},{"site":"vercel-web","path":"/blog/changelog-july-2020","distance":0.1855}],"related":[{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-command-line-logs","title":"Improvements to command line logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/deploy"},{"site":"vercel-docs","path":"/docs/cli/inspect"},{"site":"vercel-docs","path":"/docs/cli/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.228},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","distance":0.2391},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.2578},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.2689},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.2728}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","title":"Improvements to deployment summaries","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"},{"site":"vercel-web","path":"/blog/partial-prerendering-with-next-js-creating-a-new-default-rendering-model"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.1538},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2339},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2342},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","distance":0.2416},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","distance":0.2483}],"related":[{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-december-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","title":"Improvements to Runtime Logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.1832},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.2205},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2313},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.2604},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2606}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-support-center","title":"Improvements to Support Center","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/summer-internship-at-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-center-on-pro","distance":0.1685},{"site":"vercel-changelog","path":"/changelog/support-center","distance":0.2177},{"site":"vercel-docs","path":"/docs/support-center","distance":0.3267},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.3391},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.3525}],"related":[{"site":"vercel-web","path":"/blog/summer-internship-at-vercel","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/support-center-on-pro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-web","path":"/blog/support-form","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-center","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-firewall-system-bypass-rules","title":"Improvements to Vercel Firewall system bypass rules","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-bypassing-system-mitigations-for-specific-ips","distance":0.0963},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","distance":0.2027},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.25},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.2612}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-bypassing-system-mitigations-for-specific-ips","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","title":"Improvements to Vercel Secure Compute builds provisioning time","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/optimizing-secure-builds-with-hive-and-secure-compute"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","distance":0.2306},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","distance":0.232},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.234},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2513}],"related":[{"site":"vercel-web","path":"/blog/optimizing-secure-builds-with-hive-and-secure-compute","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-build-compute-performance-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","title":"Improvements to Vercel Toolbar: Shrinking when inactive, removal of avatars, and more","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.1359},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","distance":0.1618},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.1976},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","distance":0.2035},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.2291}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/in-function-concurrency-now-in-public-beta","title":"In-function concurrency now in public beta","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta","distance":0.1116},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","distance":0.1884},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.2346},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.2545},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","distance":0.2829}],"related":[{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","title":"Included Pro usage is now credit-based","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro"},{"site":"vercel-changelog","path":"/changelog/hipaa-baas-are-now-available-to-pro-teams"},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.1394},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","distance":0.1761},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","distance":0.1888},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","distance":0.2121},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.2309}],"related":[{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/hobby","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flat-rate-cdn-is-now-ga-for-pro-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","title":"Increased Blob store limit for Hobby users","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/unlimited-vercel-blob-stores-on-every-plan","distance":0.1961},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.2217},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","distance":0.2512},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","distance":0.2589},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","distance":0.2686}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unlimited-vercel-blob-stores-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","title":"Increased Hobby usage limits for Image Optimization","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","distance":0.1802},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","distance":0.2529},{"site":"vercel-docs","path":"/docs/image-optimization/limits-and-pricing","distance":0.2577},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","distance":0.2589},{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","distance":0.2888}],"related":[{"site":"vercel-docs","path":"/docs/image-optimization/legacy-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/exceeding-included-image-optimization-usage-no-longer-pauses-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","title":"Increased limit for projects per Git repo","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/limits"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-with-increased-projects-per-repository","distance":0.238},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2737},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","distance":0.2887},{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","distance":0.3067},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","distance":0.3106}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-with-increased-projects-per-repository","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","title":"Better security with the developer and billing roles","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.189},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","distance":0.2235},{"site":"vercel-changelog","path":"/changelog/billing-role-on-pro","distance":0.235},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","distance":0.2398},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.2424}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/billing-role-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","title":"Increased security with view-only permissions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.2157},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.2235},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.2255},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","distance":0.2897},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","distance":0.295}],"related":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","title":"Incremental Static Regeneration (ISR) is now faster and more cost-efficient","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-web","path":"/blog/isr-a-flexible-way-to-cache-dynamic-content"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","distance":0.1293},{"site":"vercel-changelog","path":"/changelog/deploys-are-now-up-to-33-faster-for-apps-with-many-isr-pages","distance":0.1894},{"site":"vercel-web","path":"/blog/isr-a-flexible-way-to-cache-dynamic-content","distance":0.2034},{"site":"vercel-web","path":"/blog/how-hashicorp-developers-iterate-faster-with-isr","distance":0.23},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.255}],"related":[{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-hashicorp-developers-iterate-faster-with-isr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/incremental-static-regeneration","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/incremental-static-regeneration","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploys-are-now-up-to-33-faster-for-apps-with-many-isr-pages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/request-collapsing-for-isr-cache-misses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/write-utilization-now-available-in-isr-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-and-more-reliable-global-propagation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/information-disclosure-in-flags-sdk-cve-2025-46332","title":"Information disclosure in Flags SDK (CVE-2025-46332)","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.3065},{"site":"vercel-changelog","path":"/changelog/authenticate-vercel-flags-with-openid-connect-by-default","distance":0.3087},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.3211},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.3248},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.3253}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/authenticate-vercel-flags-with-openid-connect-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway","title":"Inkling from Thinking Machines is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/inkling-small-now-available-on-ai-gateway","distance":0.0665},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.2343},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2392},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","distance":0.2534},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.2667}],"related":[{"site":"vercel-changelog","path":"/changelog/inkling-small-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/inkling-small-now-available-on-ai-gateway","title":"Inkling Small from Thinking Machines is now available on AI Gateway","summary":null,"outbound":[{"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/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway","distance":0.0665},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.2388},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.266},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2686},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","distance":0.2772}],"related":[{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","title":"Inngest joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.233},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","distance":0.2637},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.2646},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2689},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.2711}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","title":"Inspect feature flag history with Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","distance":0.2242},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","distance":0.2325},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.253},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2837},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.2865}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/evaluation-metrics-for-vercel-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/inspect-open-graph-data-with-the-vercel-toolbar","title":"Inspect Open Graph data with the Vercel Toolbar","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2024"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/open-graph-link-sharing-inspector","distance":0.2285},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.2541},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.2674},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.2846},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","distance":0.2924}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2024","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/og-preview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-graph-link-sharing-inspector","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/accessibility-tool","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/inspect-your-deployment-source-and-build-output-files","title":"Inspect your deployment source and build output files","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","distance":0.303},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","distance":0.3409},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.3741},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.3749},{"site":"vercel-changelog","path":"/changelog/deployments-now-show-billable-duration-and-cpu-minutes","distance":0.3779}],"related":[{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-logs-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-now-show-billable-duration-and-cpu-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","title":"Install Marketplace Integrations from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/install"},{"site":"vercel-docs","path":"/docs/integrations"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","distance":0.1902},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-agent-skills","distance":0.2153},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2461},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","distance":0.2555}],"related":[{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-agent-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","title":"Instant Rollback is now generally available to revert deployments","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","distance":0.1163},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","distance":0.1524},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","distance":0.1687},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.1889},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","distance":0.277}],"related":[{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-web","path":"/blog/releasing-safe-and-cost-efficient-blue-green-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","title":"Instant Rollback public beta available to revert deployments","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","distance":0.1139},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","distance":0.1163},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","distance":0.1779},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.2421},{"site":"vercel-changelog","path":"/changelog/new-instant-rollback-flow","distance":0.2993}],"related":[{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-web","path":"/blog/releasing-safe-and-cost-efficient-blue-green-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/canceling-ongoing-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-instant-rollback-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","title":"Instant Rollback public beta now available in the CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/rollback"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","distance":0.1139},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","distance":0.1524},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","distance":0.232},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.2553},{"site":"vercel-docs","path":"/docs/cli/rollback","distance":0.2947}],"related":[{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-instant-rollback-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/instantly-redirect-traffic-using-custom-vercel-firewall-rules","title":"Instantly redirect traffic using custom Vercel Firewall rules","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.1914},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","distance":0.2273},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.2433},{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","distance":0.2754},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.2867}],"related":[{"site":"vercel-kb","path":"/kb/guide/emergency-redirect","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","title":"Instantly transfer domains to new projects","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","distance":0.2405},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2525},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2595},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.2743},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","distance":0.2789}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/transfer-your-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","title":"Instrument and trace applications with the OpenTelemetry collector","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-otel-1-3-0","distance":0.1691},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.2205},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","distance":0.2632},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","distance":0.266},{"site":"nextjs","path":"/docs/pages/guides/open-telemetry","distance":0.276}],"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":"eve","path":"/docs/observability/otel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-otel-1-3-0","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","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":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-relic-integration-now-supports-traces-from-opentelemetry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/integrate-remix-session-storage-with-your-vercel-kv-database","title":"Integrate Remix session storage with your Vercel KV database","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","distance":0.2909},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","distance":0.2952},{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","distance":0.2957},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","distance":0.2989},{"site":"vercel-changelog","path":"/changelog/vercel-kv","distance":0.3128}],"related":[{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","title":"Integrated billing for Supabase, Redis, and EdgeDB","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.1462},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","distance":0.1981},{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.2015},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","distance":0.2144},{"site":"vercel-changelog","path":"/changelog/upstash-joins-the-vercel-marketplace","distance":0.2191}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/marketplace-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upstash-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","title":"Integration Webhooks are now easier to configure","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks"},{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","distance":0.204},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","distance":0.2235},{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","distance":0.2258},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.2423}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-deploy-hooks","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/deletes-a-webhook","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/integrations-are-now-shown-in-activity-log","title":"Integrations are now shown in Activity Log","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.2721},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.2884},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","distance":0.3273},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","distance":0.3291},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.3562}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/manage-integrations-reference","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","title":"Integrations can now be managed more efficiently","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace"},{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.1341},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2121},{"site":"vercel-changelog","path":"/changelog/new-slack-integration","distance":0.2356},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","distance":0.2423},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","distance":0.2549}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-are-now-shown-in-activity-log","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/intelligent-ignored-builds-using-turborepo","title":"Intelligent ignored builds using Turborepo","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","distance":0.2195},{"site":"turborepo","path":"/docs/reference/turbo-ignore","distance":0.2991},{"site":"vercel-changelog","path":"/changelog/import-turborepo-nx-and-rush-monorepos-with-zero-configuration","distance":0.3118},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","distance":0.3133},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.3146}],"related":[{"site":"turborepo","path":"/docs/reference/turbo-ignore","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/import-turborepo-nx-and-rush-monorepos-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/interaction-timing-tool","title":"Understand Interaction to Next Paint (INP) with the Vercel Toolbar","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2024"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-analytics-support-for-interaction-to-next-paint-experimental","distance":0.1618},{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","distance":0.2536},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","distance":0.2554},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","distance":0.2574},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","distance":0.2659}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2024","via":"inbound"},{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","via":"neighbor"},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","via":"neighbor"},{"site":"vercel-web","path":"/blog/demystifying-inp-new-tools-and-actionable-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-support-for-interaction-to-next-paint-experimental","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-agent-plugins-1-0-0","title":"Introducing Agent Plugins 1.0.0","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/agent-plugins"},{"site":"vercel-web","path":"/blog/introducing-agent-plugins"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-agent-plugins","distance":0.0863},{"site":"vercel-kb","path":"/kb/guide/agent-plugins","distance":0.2133},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","distance":0.2563},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","distance":0.3364},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","distance":0.3409}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","title":"Introducing AI agents & services on the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.0653},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.1595},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","distance":0.1763},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.1912},{"site":"vercel-web","path":"/blog/what-we-learned-building-agents-at-vercel","distance":0.2043}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/what-we-learned-building-agents-at-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-web","path":"/blog/you-can-just-ship-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","title":"Introducing AI Elements: Prebuilt, composable AI SDK components","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","distance":0.2011},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","distance":0.2423},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.25},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","distance":0.2548},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","distance":0.2609}],"related":[{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-generative-ui","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-ui/overview","via":"neighbor"},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"ai-sdk","path":"/docs/reference/ai-sdk-ui","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/react-components","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-elements-1-9","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-voice-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-bash-tool-for-filesystem-based-context-retrieval","title":"Introducing bash-tool for filesystem-based context retrieval","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/we-removed-80-percent-of-our-agents-tools"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool"},{"site":"vercel-web","path":"/blog/how-to-build-agents-with-filesystems-and-bash"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","distance":0.2097},{"site":"vercel-web","path":"/blog/how-to-build-agents-with-filesystems-and-bash","distance":0.2675},{"site":"vercel-web","path":"/blog/we-removed-80-percent-of-our-agents-tools","distance":0.3045},{"site":"vercel-web","path":"/blog/testing-if-bash-is-all-you-need","distance":0.3393},{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.3442}],"related":[{"site":"vercel-web","path":"/blog/how-to-build-agents-with-filesystems-and-bash","via":"inbound"},{"site":"vercel-web","path":"/blog/testing-if-bash-is-all-you-need","via":"neighbor"},{"site":"ai-sdk","path":"/docs/foundations/tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-runtime-and-tool-context","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-run","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/runtime-and-tool-context","via":"neighbor"},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-enterprise-flexible-commitment-for-vercel-marketplace","title":"Introducing Enterprise Flexible Commitment for Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2572},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","distance":0.2921},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","distance":0.3112},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3167},{"site":"vercel-web","path":"/blog/vercel-joins-aws-marketplace","distance":0.3184}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-joins-aws-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","title":"Introducing eve, an open-source agent framework","summary":null,"outbound":[{"site":"eve","path":"/docs/getting-started"},{"site":"vercel-web","path":"/blog/introducing-eve"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/eve","distance":0.1085},{"site":"vercel-web","path":"/blog/agent-stack","distance":0.1159},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","distance":0.1872},{"site":"vercel-docs","path":"/docs/eve/concepts","distance":0.1881},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","distance":0.1885}],"related":[{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","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":"eve","path":"/docs/guides/frontend/nextjs","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","via":"inbound"}]},{"site":"vercel-changelog","path":"/changelog/introducing-platform-elements","title":"Introducing Platform Elements","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","distance":0.1512},{"site":"vercel-docs","path":"/docs/platforms/platform-elements","distance":0.1856},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","distance":0.2432},{"site":"vercel-docs","path":"/docs/platforms","distance":0.2651},{"site":"vercel-web","path":"/blog/platforms-starter-kit","distance":0.2808}],"related":[{"site":"vercel-docs","path":"/docs/platforms/platform-elements","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms","via":"neighbor"},{"site":"vercel-web","path":"/blog/platforms-starter-kit","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/custom-domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/platform-elements/blocks/claim-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","title":"Introducing skills, the open agent skills ecosystem","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.1368},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.1719},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","distance":0.191},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.2115},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","distance":0.2362}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"inbound"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-web","path":"/blog/state-of-agent-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-cli-notion-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-skills-sh-api-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","title":"Introducing Streamdown: Open source Markdown for AI streaming","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.174},{"site":"streamdown","path":"/docs","distance":0.1792},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","distance":0.2047},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","distance":0.2213},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","distance":0.2366}],"related":[{"site":"streamdown","path":"/docs","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/getting-started","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-the-dubai-vercel-region-dxb1","title":"Introducing the Dubai Vercel region (dxb1)","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-the-montreal-canada-vercel-region-yul1","distance":0.3062},{"site":"vercel-docs","path":"/docs/regions","distance":0.3351},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","distance":0.3449},{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","distance":0.3593},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3613}],"related":[{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/dub1","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-montreal-canada-vercel-region-yul1","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-the-montreal-canada-vercel-region-yul1","title":"Introducing the Montréal, Canada region (yul1) ","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1"},{"site":"vercel-docs","path":"/docs/regions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/yul1","distance":0.2819},{"site":"vercel-changelog","path":"/changelog/introducing-the-dubai-vercel-region-dxb1","distance":0.3062},{"site":"vercel-docs","path":"/docs/regions","distance":0.3329},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","distance":0.3567},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","distance":0.3613}],"related":[{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-dubai-vercel-region-dxb1","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","title":"Introducing the Runtime Cache API","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-functions-package"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","distance":0.2003},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","distance":0.2328},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache","distance":0.2367},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2559},{"site":"vercel-docs","path":"/docs/caching/runtime-cache","distance":0.2613}],"related":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python","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-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-cache-reasons","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/add-cache-tags-from-function-responses-regardless-of-framework","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-api-cli-command","title":"Introducing the vercel api CLI command","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/api","distance":0.2413},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","distance":0.2797},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.3013},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.3014},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.3037}],"related":[{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-typescript-sdk","title":"Introducing the Vercel TypeScript SDK","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api/sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-ts","distance":0.2204},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3091},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.3128},{"site":"vercel-web","path":"/blog/build-output-api","distance":0.313},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.3134}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","title":"Introducing Trace Drains on the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.1318},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","distance":0.2144},{"site":"vercel-web","path":"/blog/log-drains","distance":0.2329},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2329},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.2353}],"related":[{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-ai-gateway-traces-with-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","title":"Introducing VCR: Vercel Container Registry","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/bring-your-dockerfile-to-vercel-functions"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images"},{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry"},{"site":"vercel-web","path":"/blog/fluid-compute-takes-any-shape"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","distance":0.147},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.1713},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","distance":0.1831},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","distance":0.2234}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"inbound"},{"site":"vercel-web","path":"/blog/fluid-compute-takes-any-shape","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"},{"site":"vercel-web","path":"/blog/dockerfile-on-vercel","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-cloud-run-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache","title":"Introducing the Vercel Data Cache: Optimized caching for React Server Components","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/next-js-13-4"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","distance":0.1898},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","distance":0.2233},{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","distance":0.2342},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","distance":0.2367},{"site":"vercel-web","path":"/blog/nextjs-app-router-data-fetching","distance":0.2469}],"related":[{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/share-vercel-cache-across-deployments-nextjs","via":"neighbor"},{"site":"vercel-web","path":"/blog/nextjs-app-router-data-fetching","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","title":"Introducing Vercel Firewall DDoS mitigation notifications","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","distance":0.2051},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.2107},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.2227},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.2236},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","distance":0.2278}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","title":"Introducing Vercel for Platforms","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/introducing-platform-elements"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-platform-elements","distance":0.1512},{"site":"vercel-docs","path":"/docs/platforms","distance":0.1546},{"site":"vercel-web","path":"/blog/platforms-starter-kit","distance":0.1784},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms/concepts","distance":0.2168},{"site":"vercel-docs","path":"/docs/platforms/multi-project-platforms","distance":0.2386}],"related":[{"site":"vercel-docs","path":"/docs/platforms","via":"neighbor"},{"site":"vercel-web","path":"/blog/platforms-starter-kit","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-project-platforms/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","title":"Introducing the Vercel plugin for coding agents","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","distance":0.156},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","distance":0.1625},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","distance":0.1816},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","distance":0.2175},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","distance":0.2256}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-agent-plugins-1-0-0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","title":"Invalidate the CDN cache by tag","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/cache"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","distance":0.1328},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","distance":0.1586},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.2115},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","distance":0.2583},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","distance":0.2624}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","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/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-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/edge-cache/invalidate-by-source-image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manually-purge-the-cdn-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/add-cache-tags-from-function-responses-regardless-of-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stale-if-error-cache-control-header-is-now-supported","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/invite-collaborators-to-view-and-comment-on-your-deployments","title":"Invite collaborators to view and comment on your deployments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","distance":0.1793},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","distance":0.2739},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2938},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.3053},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","distance":0.322}],"related":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/invoices-are-now-available-on-a-dedicated-page","title":"Invoices are now available on a dedicated page","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/advanced-invoice-settings","distance":0.2466},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","distance":0.3243},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","distance":0.3369},{"site":"vercel-kb","path":"/kb/guide/where-can-i-get-copies-of-my-vercel-invoices","distance":0.3425},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.3515}],"related":[{"site":"vercel-web","path":"/blog/advanced-invoice-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/where-can-i-get-copies-of-my-vercel-invoices","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-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-billing-usage-cost-data-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ip-address-details-added-in-the-vercel-firewall-dashboard","title":"IP address details added in the Vercel Firewall dashboard","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.2243},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.2271},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2734},{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","distance":0.2781},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","distance":0.2822}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","title":"IP Geolocation for Serverless Functions","summary":null,"outbound":[{"site":"vercel-web","path":"/pricing"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/routing-based-on-headers-and-query-string-parameters"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","distance":0.1644},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","distance":0.2113},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","distance":0.236},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","distance":0.2739},{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","distance":0.3212}],"related":[{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/request-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-utilities-to-work-with-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","title":"IP Geolocation now available for all plans","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/headers"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-web","path":"/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.2113},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","distance":0.2357},{"site":"vercel-changelog","path":"/changelog/new-utilities-to-work-with-vercel-functions","distance":0.3054},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","distance":0.3071},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","distance":0.3137}],"related":[{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-utilities-to-work-with-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/is-agentic-report-categories","title":"Is Agentic now tailors its audit by site type","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","distance":0.4438},{"site":"vercel-web","path":"/blog/technical-audits","distance":0.4468},{"site":"vercel-web","path":"/blog/unified-reporting-for-your-ai-spend","distance":0.4505},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.4532},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","distance":0.4532}],"related":[{"site":"vercel-web","path":"/blog/technical-audits","via":"neighbor"},{"site":"vercel-web","path":"/blog/unified-reporting-for-your-ai-spend","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/core-web-vitals","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-security-audits-now-available-for-skills-sh","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/january-2023","title":"Improvements and fixes","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/improved-support-for-gatsby-sites"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.1363},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.1792},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1904},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.1914},{"site":"vercel-changelog","path":"/changelog/march-2023","distance":0.194}],"related":[{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/jekyll-deployments-are-now-15x-faster","title":"Jekyll deployments are now 15x faster","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.2989},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.3062},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","distance":0.3118},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.3119},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.3147}],"related":[{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-10-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/kimi-k2-5-on-ai-gateway","title":"Kimi K2.5 is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/trinity-large-preview-is-on-ai-gateway","distance":0.0704},{"site":"vercel-changelog","path":"/changelog/streamdown-v2","distance":0.2288},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.2753},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.2961},{"site":"vercel-changelog","path":"/changelog/kimi-k3-and-kimi-k3-fast-on-ai-gateway","distance":0.299}],"related":[{"site":"vercel-changelog","path":"/changelog/trinity-large-preview-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-v2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-and-kimi-k3-fast-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","title":"Kimi K2.7 Code now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.0888},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.1439},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","distance":0.1471},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","distance":0.1533},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","distance":0.1556}],"related":[{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","title":"Kimi K2.6 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","distance":0.0888},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.1015},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","distance":0.1073},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","distance":0.1359},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","distance":0.1363}],"related":[{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/kimi-k3-and-kimi-k3-fast-on-ai-gateway","title":"Kimi K3 and Kimi K3 Fast with ZDR and US-based providers now on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","distance":0.1131},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.1867},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.1872},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","distance":0.2004},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","distance":0.2026}],"related":[{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/moonshotai","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","title":"Kimi K3 is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/kimi-k3-and-kimi-k3-fast-on-ai-gateway","distance":0.1131},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.1363},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","distance":0.1471},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.1549},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","distance":0.163}],"related":[{"site":"vercel-changelog","path":"/changelog/kimi-k3-and-kimi-k3-fast-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","title":"Kling video models on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"}],"inbound":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.1261},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/klingai","distance":0.1745},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","distance":0.2002},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.2008},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","distance":0.2191}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","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","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/motion-control","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":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-asynchronous-video-generation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","title":"Laguna S 2.1 is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/10x-more-capacity-for-laguna-s-2-1-on-ai-gateway","distance":0.1032},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.2351},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.2387},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.2411},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","distance":0.2418}],"related":[{"site":"vercel-changelog","path":"/changelog/10x-more-capacity-for-laguna-s-2-1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","title":"Latest MCP spec now supported in mcp-handler","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","distance":0.2158},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","distance":0.2207},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2322},{"site":"vercel-changelog","path":"/changelog/webmcp-mcp-handler","distance":0.242},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","distance":0.2599}],"related":[{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","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-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-second-wave-of-mcp-building-for-llms-not-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/webmcp-mcp-handler","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/launchdarkly-is-now-available-on-the-vercel-marketplace","title":"LaunchDarkly is now available on the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/flags-explorer"},{"site":"vercel-docs","path":"/docs/global-config"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","distance":0.1879},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","distance":0.2302},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.2394},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2451},{"site":"vercel-docs","path":"/docs/flags/marketplace","distance":0.26}],"related":[{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/launchdarkly","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/global-config-integrations/launchdarkly-global-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/laya-decision-model-now-available-on-ai-gateway-free-through-october-31","title":"Laya decision model now available on AI Gateway, free through October 31","summary":null,"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/sdks-and-apis/typesafe"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","distance":0.2566},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","distance":0.2799},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","distance":0.3},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.3014},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.3094}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","title":"Legacy build image is being deprecated on September 1, 2025","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.1495},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.1553},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.1721},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.1823},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.2062}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","title":"Legacy environment variable secrets are being sunset","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","distance":0.0217},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.1786},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.1873},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.2025},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.2063}],"related":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","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-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-logs-now-redact-sensitive-environment-variable-values","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-marketplace-credentials-with-production-only-access","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","title":"Reminder of legacy environment variable secrets sunset","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","distance":0.0217},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.2094},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.2153},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.2347},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","distance":0.2363}],"related":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","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-docs","path":"/docs/environment-variables/rotating-secrets","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-logs-now-redact-sensitive-environment-variable-values","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-marketplace-credentials-with-production-only-access","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/limit-on-demand-concurrent-builds-to-one-build-per-branch","title":"Limit on-demand concurrent builds to one build per branch","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/build-commits-to-the-same-branch-without-waiting","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2552},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2752},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","distance":0.2755},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.2885}],"related":[{"site":"vercel-docs","path":"/docs/builds/build-queues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-web","path":"/blog/canceling-ongoing-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-commits-to-the-same-branch-without-waiting","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","title":"Ling 3.0 Flash Fin now available on AI Gateway for free","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","distance":0.1201},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.135},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","distance":0.182},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","distance":0.2649}],"related":[{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","title":"Ling 3.0 Flash is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.0831},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","distance":0.1201},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","distance":0.1726},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","distance":0.2007}],"related":[{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","title":"Ling 3.0 Flash Sante is now available on AI Gateway for free","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.1002},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","distance":0.1726},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","distance":0.182},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.2107},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.2185}],"related":[{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","title":"Ling 3.0 Tiny is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.1472},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","distance":0.2185},{"site":"vercel-changelog","path":"/changelog/inkling-small-now-available-on-ai-gateway","distance":0.2388}],"related":[{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inkling-small-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","title":"Ling 3.1 Flash is now available on AI Gateway","summary":null,"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/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","distance":0.0831},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","distance":0.1002},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","distance":0.135},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.142},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","distance":0.1472}],"related":[{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-sante-is-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-flash-fin-now-available-on-ai-gateway-for-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-0-tiny-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/link-and-share-build-logs","title":"Link and share Build Logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/build-logs-now-support-interactive-links","distance":0.2112},{"site":"vercel-docs","path":"/docs/deployments/logs","distance":0.3101},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.3461},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","distance":0.3494},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","distance":0.3549}],"related":[{"site":"vercel-docs","path":"/docs/deployments/logs","via":"neighbor"},{"site":"vercel-web","path":"/blog/refined-logging","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-logs-now-support-interactive-links","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","title":"Liquid AI's d1 is available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","distance":0.2024},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","distance":0.2089},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","distance":0.2928},{"site":"vercel-changelog","path":"/changelog/laya-decision-model-now-available-on-ai-gateway-free-through-october-31","distance":0.3},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","distance":0.3109}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/decision","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/laya-decision-model-now-available-on-ai-gateway-free-through-october-31","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/listing-the-content-of-directories-can-now-be-toggled","title":"Listing the content of directories can now be toggled","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/the-directory-listing-feature-will-be-disabled-for-older-projects"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/the-directory-listing-feature-will-be-disabled-for-older-projects","distance":0.1788},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3811},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","distance":0.391},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","distance":0.3937},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.3967}],"related":[{"site":"vercel-changelog","path":"/changelog/the-directory-listing-feature-will-be-disabled-for-older-projects","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/litellm-server-now-supported-on-vercel","title":"LiteLLM server now supported on Vercel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/litellm","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","distance":0.3279},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","distance":0.346},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.3472},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/llamaindex","distance":0.3558}],"related":[{"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":"vercel-kb","path":"/kb/guide/what-is-a-large-language-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chained-openai-llm-calls-vercel-inngest","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/live-model-performance-metrics-accessible-via-ai-gateway","title":"Live model performance metrics accessible via AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","distance":0.1645},{"site":"vercel-changelog","path":"/changelog/open-data-and-shareable-charts-for-ai-gateway-leaderboards","distance":0.2542},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2565},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","distance":0.2568},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2623}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-data-and-shareable-charts-for-ai-gateway-leaderboards","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/llama-4-is-now-available-on-vercel-marketplace","title":"Llama 4 is now available on Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","distance":0.2981},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","distance":0.3087},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.309},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","distance":0.3237},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","distance":0.3287}],"related":[{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/llamagate","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-6-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","title":"Lockfile-aware deployment skipping for monorepos","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","distance":0.2013},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","distance":0.2535},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","distance":0.2622},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2975},{"site":"vercel-changelog","path":"/changelog/intelligent-ignored-builds-using-turborepo","distance":0.3133}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/intelligent-ignored-builds-using-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-support-for-pnpm-corepack-and-monorepos","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","title":"Log Drains are now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","distance":0.1443},{"site":"vercel-changelog","path":"/changelog/reduced-log-drains-costs-with-smaller-billable-increments","distance":0.182},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.1844},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","distance":0.2091}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-log-drains-costs-with-smaller-billable-increments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","title":"Log drains now support log source selection","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","distance":0.2105},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","distance":0.2177},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","distance":0.2236},{"site":"vercel-web","path":"/blog/log-drains","distance":0.2244},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.2328}],"related":[{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-web","path":"/blog/refined-logging","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-the-vercel-firewall","title":"Log Drains now support the Vercel Firewall","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.2571},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2638},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","distance":0.2676},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","distance":0.2686},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.2739}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/audit-logs-to-datadog","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/audit-log-drains-now-support-datadog-splunk-and-panther","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/log4j-vulnerability","title":"Vercel Security: Response to Log4j Vulnerability","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","distance":0.284},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","distance":0.3197},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.3251},{"site":"vercel-changelog","path":"/changelog/strengthening-vercels-infrastructure-against-http-2-rapid-reset-attacks","distance":0.3338},{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","distance":0.3353}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-web","path":"/blog/update-regarding-vercel-service-disruption-on-august-7-2024","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/strengthening-vercels-infrastructure-against-http-2-rapid-reset-attacks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-has-proactively-protected-against-a-vulnerability-in-the-sentry-next","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/login-with-passkey-is-now-supported","title":"Login with passkey is now supported","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","distance":0.259},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.3062},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","distance":0.3306},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","distance":0.3391},{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","distance":0.3425}],"related":[{"site":"vercel-docs","path":"/docs/two-factor-authentication","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","title":"Logs filtering for Vercel Workflows now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","distance":0.2104},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","distance":0.2625},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","distance":0.2751},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.3003},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.3023}],"related":[{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/longcat-flash-chat-model-is-now-supported-in-vercel-ai-gateway","title":"LongCat-Flash Chat model is now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2411},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","distance":0.2477},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2487},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.2502},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-chat-is-now-on-ai-gateway","distance":0.2554}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ling-3-1-flash-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-3-chat-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","title":"Longer history available in Speed Insights","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","distance":0.2051},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2146},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-speed-insights","distance":0.244},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","distance":0.2454},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","distance":0.2534}],"related":[{"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":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","title":"Lower prices for domains on Vercel","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-ai-domains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.1746},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-ai-domains","distance":0.1886},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","distance":0.221},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","distance":0.2408}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-fast-data-transfer","title":"Lower pricing for Fast Data Transfer","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","distance":0.2615},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","distance":0.2891},{"site":"vercel-changelog","path":"/changelog/fast-origin-transfer-is-now-automatically-compressed","distance":0.293},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","distance":0.2931},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","distance":0.3066}],"related":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hkg1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/sfo1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/cpt1","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/regional-pricing/hnd1","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-origin-transfer-is-now-automatically-compressed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","title":"Lower pricing for Log Drains","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/reduced-log-drains-costs-with-smaller-billable-increments","distance":0.1332},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.1443},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","distance":0.2471},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2554},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.2623}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-log-drains-costs-with-smaller-billable-increments","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-now-support-log-source-selection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/lower-pricing-with-active-cpu-pricing-for-fluid-compute","title":"Lower pricing with Active CPU pricing for Fluid compute","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute"},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox"},{"site":"vercel-web","path":"/blog/scale-to-one-how-fluid-solves-cold-starts"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute","distance":0.0978},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.2224},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","distance":0.2235},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","distance":0.2356},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.2445}],"related":[{"site":"vercel-web","path":"/blog/scale-to-one-how-fluid-solves-cold-starts","via":"inbound"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/fluid-compute-vs-cloud-cost","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-ai-gateway-runs-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/lowering-default-serverless-function-timeout-in-enterprise-projects","title":"No action required: Lowering default function timeout in new Enterprise projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes","distance":0.2497},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","distance":0.3064},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.3242},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.3371},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","distance":0.3416}],"related":[{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","title":"MAI-Image-2.6 and MAI-Image-2.6-Flash now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/ai-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2089},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","distance":0.2168},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","distance":0.225},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","distance":0.2364}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-5-flare-and-sunburst-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flux-3-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","title":"Manage multiple Vercel Function regions in the dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","distance":0.1782},{"site":"vercel-changelog","path":"/changelog/improved-resiliency-for-vercel-functions-with-failover-support","distance":0.2263},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.2482},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","distance":0.2539},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.2675}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-resiliency-for-vercel-functions-with-failover-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-your-vercel-functions-cpu-and-memory-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-next-js-server-actions-in-the-vercel-firewall","title":"Manage Next.js Server Actions in the Vercel Firewall","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2906},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.3038},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","distance":0.3039},{"site":"vercel-changelog","path":"/changelog/vercel-waf-now-supports-persistent-actions","distance":0.3128},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.3324}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/serverActions","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/server-actions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/security/read-firewall-actions-by-project","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-now-supports-persistent-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","title":"Manage Vercel Container Registry with Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/container-registry"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry","distance":0.1428},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","distance":0.147},{"site":"vercel-docs","path":"/docs/cli/vcr","distance":0.1738},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","distance":0.2187},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","distance":0.2216}],"related":[{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-toolbar-comments-from-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","title":"Manage Vercel Firewall in the CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/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/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/system-bypass-rules"}],"inbound":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.2077},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2174},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","distance":0.2529},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.2529},{"site":"vercel-docs","path":"/docs/vercel-firewall","distance":0.253}],"related":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","title":"Manage Vercel Flags segments with Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","distance":0.1295},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","distance":0.2242},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2287},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments","distance":0.2388},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2699}],"related":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","title":"Manage Vercel Flags targeting rules from the CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/flags"},{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/segments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","distance":0.1295},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2201},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","distance":0.2325},{"site":"vercel-changelog","path":"/changelog/configure-weighted-traffic-splits-for-vercel-flags-from-the-vercel-cli","distance":0.2766},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","distance":0.2799}],"related":[{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/feature-flag","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","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-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-feature-flag-history-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-weighted-traffic-splits-for-vercel-flags-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-vercel-microfrontends-with-ai-agents-and-the-cli","title":"Manage Vercel Microfrontends with AI Agents and the CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/microfrontends"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","distance":0.2577},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.2757},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2863},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","distance":0.2889},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2947}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-vercel-toolbar-comments-from-the-cli","title":"Manage Vercel Toolbar comments from the CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/comments"},{"site":"vercel-docs","path":"/docs/vercel-toolbar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/comments","distance":0.1816},{"site":"vercel-docs","path":"/docs/comments/integrations","distance":0.2369},{"site":"vercel-docs","path":"/docs/comments","distance":0.257},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","distance":0.2604},{"site":"vercel-docs","path":"/docs/comments/managing-comments","distance":0.267}],"related":[{"site":"vercel-docs","path":"/docs/comments/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/how-comments-work","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-are-now-visible-in-your-dashboard-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manage-your-vercel-functions-cpu-and-memory-in-the-dashboard","title":"Manage your Vercel Functions CPU and memory in the dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","distance":0.178},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/memory","distance":0.2214},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.27},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","distance":0.2759}],"related":[{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"inbound"},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing/legacy-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manually-create-deployments-by-commit-or-branch-in-the-dashboard","title":"Manually create deployments by commit or branch in the dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2553},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2827},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2829},{"site":"vercel-docs","path":"/docs/git","distance":0.2839},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","distance":0.2864}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-bitbucket","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/switch-between-branches-directly-from-deployments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/manually-purge-the-cdn-cache","title":"Manually purge the CDN cache","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","distance":0.2226},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","distance":0.2674},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.2708},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.3116},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.3118}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/debug-cache-issues","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","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-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/purge-your-remote-caches-build-and-ci-artifacts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/march-2023","title":"Improvements and Fixes","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available"},{"site":"vercel-web","path":"/blog/cron-jobs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.1864},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.194},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2003},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.2088},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2105}],"related":[{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/markdown-support-for-comments-on-preview-deployments","title":"Markdown support for comments on Preview Deployments ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.1985},{"site":"vercel-docs","path":"/docs/comments/using-comments","distance":0.2134},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","distance":0.2139},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","distance":0.214},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","distance":0.2313}],"related":[{"site":"vercel-docs","path":"/docs/comments/using-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments/managing-comments","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/commenting-on-previews-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/emoji-reactions-now-available-in-preview-deployment-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convert-comments-on-preview-deployments-to-linear-issues","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","title":"Improvements and fixes","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available"},{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1421},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.1659},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.1676},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.1741},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.1966}],"related":[{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","title":"MCP Apps support on Vercel","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","distance":0.1527},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.1595},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2216},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","distance":0.2352},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2474}],"related":[{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","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-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","title":"MCP server support on Vercel","summary":null,"outbound":[{"site":"ai-sdk","path":"/cookbook/next/mcp-tools"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/tools-and-tool-calling"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers"},{"site":"vercel-web","path":"/blog/gartner-mq-visionary-2025"},{"site":"vercel-web","path":"/blog/grep-a-million-github-repositories-via-mcp"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","distance":0.1072},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1283},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.1317},{"site":"vercel-docs","path":"/docs/mcp","distance":0.1416},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","distance":0.1595}],"related":[{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/gartner-mq-visionary-2025","via":"inbound"},{"site":"vercel-web","path":"/blog/grep-a-million-github-repositories-via-mcp","via":"inbound"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations/ai-sdk","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/measure-time-between-steps-in-vercel-workflows","title":"Measure time between steps in Vercel Workflows","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","distance":0.2936},{"site":"vercel-changelog","path":"/changelog/vercel-workflows-trace-viewer-now-has-a-minimap","distance":0.3188},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","distance":0.3279},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","distance":0.3409},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","distance":0.3446}],"related":[{"site":"workflow","path":"/docs/performance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflows-trace-viewer-now-has-a-minimap","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mem0-joins-the-vercel-marketplace","title":"Mem0 joins the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"}],"inbound":[],"requires":[],"neighbors":[{"site":"ai-sdk","path":"/providers/community-providers/mem0","distance":0.2724},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2834},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","distance":0.3129},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.3134},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.3254}],"related":[{"site":"ai-sdk","path":"/providers/community-providers/mem0","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/braintrust-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mercury-2-on-ai-gateway","title":"Inception Mercury 2 is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","distance":0.2653},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2667},{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway","distance":0.2807},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.283},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2844}],"related":[{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/metrics-for-outgoing-requests","title":"Metrics for outgoing requests","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-docs","path":"/docs/storage"}],"inbound":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/custom-metrics-are-now-supported-in-vercel-observability","distance":0.272},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.2869},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.3124},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.3156},{"site":"vercel-docs","path":"/docs/pricing/legacy","distance":0.3214}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"inbound"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"inbound"},{"site":"vercel-docs","path":"/docs/pricing/legacy","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-metrics-are-now-supported-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","title":"Microfrontends now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths"},{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.0933},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.1521},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","distance":0.1565},{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","distance":0.2124},{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","distance":0.2165}],"related":[{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","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/agent-resources/vercel-mcp/tools/microfrontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-now-applies-to-vc-alias-and-branch-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-is-now-free-for-firewall-mitigated-traffic","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","title":"Microfrontends previews now link across repositories","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/microfrontends/routing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","distance":0.1381},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.2494},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","distance":0.2563},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","distance":0.2592},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2631}],"related":[{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-is-now-free-for-firewall-mitigated-traffic","title":"Microfrontends Routing is now free for Firewall-mitigated traffic","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel"},{"site":"vercel-docs","path":"/docs/microfrontends/routing"},{"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-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","distance":0.2047},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2782},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","distance":0.2794},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2849},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.305}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-now-applies-to-vc-alias-and-branch-domains","title":"Microfrontends routing now applies to vc alias and branch domains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/alias"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/assign-domain-to-a-git-branch"},{"site":"vercel-docs","path":"/docs/microfrontends"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","distance":0.2401},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","distance":0.2553},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","distance":0.2641},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.2724},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.2959}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-application-aware-routing","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-microfrontends-with-ai-agents-and-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","title":"Microfrontends support is now in Public Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"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"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","distance":0.0933},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","distance":0.1555},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.1707},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","distance":0.2098},{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","distance":0.2264}],"related":[{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/microfrontends","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-microfrontends-with-ai-agents-and-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","title":"Microsoft AI models are now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.1969},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","distance":0.2027},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","distance":0.2042},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","distance":0.2089},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2334}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","title":"Microsoft Decision-1 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","distance":0.1531},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","distance":0.2024},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","distance":0.2193},{"site":"vercel-changelog","path":"/changelog/confidence-based-decision-fallbacks","distance":0.2536},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions","distance":0.2619}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/decision","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/confidence-based-decision-fallbacks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/typesafe-ai-jev-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/middleware-insights-now-available-in-vercel-observability","title":"Middleware insights now available in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2262},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.254},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2616},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2629},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","distance":0.2735}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/middleware-now-supports-node-js","title":"Middleware now supports Node.js","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.2789},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","distance":0.293},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","distance":0.304},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","distance":0.3091},{"site":"vercel-changelog","path":"/changelog/vercel-edge-middleware-is-now-generally-available","distance":0.3103}],"related":[{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-response-header","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-middleware-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mimo-v2-6-models-now-available-on-ai-gateway","title":"MiMo V2.6 models now available on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.2562},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-0902-now-available-on-ai-gateway","distance":0.2756},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","distance":0.2822},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.2823},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.2882}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-0902-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-h3-and-h3-max-are-50-off-on-ai-gateway","title":"MiniMax H3 and H3 Max are 50% off on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","distance":0.1294},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","distance":0.1981},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.214},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.2234},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.239}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/minimax","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","title":"MiniMax H3 now available on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-h3-and-h3-max-are-50-off-on-ai-gateway","distance":0.1294},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.1884},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.2316},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.2507},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","distance":0.2634}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-providers/minimax","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-h3-and-h3-max-are-50-off-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","title":"MiniMax M2.1 now live on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.0734},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.0868},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","distance":0.0966},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.107},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","distance":0.2098}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","title":"MiniMax M2 now available for free in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.0734},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.1387},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.1398},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","distance":0.1536},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","distance":0.1543}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","title":"MiniMax M2.7 is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.0868},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","distance":0.0909},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.109},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.1387},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","distance":0.1839}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","title":"MiniMax M3 and M2.7 are free on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.1543},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.1817},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.1839},{"site":"vercel-changelog","path":"/changelog/minimax-h3-and-h3-max-are-50-off-on-ai-gateway","distance":0.1981},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","distance":0.2076}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-h3-and-h3-max-are-50-off-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","title":"MiniMax M3 on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.107},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.109},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","distance":0.1171},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.1398},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","distance":0.1817}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/community-providers/minimax","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mistral-large-3-now-available-on-vercel-ai-gateway","title":"Mistral Large 3 now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mistral-large-4-now-available-on-ai-gateway","distance":0.1176},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.242},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.253},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.2534},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.2622}],"related":[{"site":"vercel-changelog","path":"/changelog/mistral-large-4-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mistral-large-4-now-available-on-ai-gateway","title":"Mistral Large 4 now available on AI Gateway","summary":null,"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/coding-agents"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mistral-large-3-now-available-on-vercel-ai-gateway","distance":0.1176},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.2202},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.2411},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.2431},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","distance":0.2467}],"related":[{"site":"vercel-changelog","path":"/changelog/mistral-large-3-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","title":"Model fallbacks now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","distance":0.1876},{"site":"vercel-changelog","path":"/changelog/confidence-based-decision-fallbacks","distance":0.197},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2188},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.2252},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.2267}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/model-fallbacks","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/confidence-based-decision-fallbacks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/models-api-v0-1.5-beta","title":"v0-1.5-md & v0-1.5-lg now in beta on the Models API","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/v0-composite-model-family","distance":0.3597},{"site":"vercel-changelog","path":"/changelog/v0-platform-api-now-in-beta","distance":0.3695},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","distance":0.4096},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.4108},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-now-supports-1m-token-context-in-vercel-ai-gateway","distance":0.4113}],"related":[{"site":"vercel-web","path":"/blog/v0-composite-model-family","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-web","path":"/blog/updated-v0-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/announcing-v0-generative-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-platform-api-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-now-supports-1m-token-context-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","title":"Fullstack serverless with MongoDB Atlas integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","distance":0.1995},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","distance":0.217},{"site":"vercel-web","path":"/blog/mongodb-and-vercel-from-idea-to-global-fullstack-app-in-seconds","distance":0.2275},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","distance":0.2811},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","distance":0.306}],"related":[{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/mongodb-and-vercel-from-idea-to-global-fullstack-app-in-seconds","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/add-elastic-scalability-to-your-backend-with-cockroach-labs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","title":"MongoDB Atlas joins the Vercel Marketplace ","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","distance":0.0509},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","distance":0.1995},{"site":"vercel-web","path":"/blog/mongodb-and-vercel-from-idea-to-global-fullstack-app-in-seconds","distance":0.2028},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.2404},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.2436}],"related":[{"site":"vercel-web","path":"/blog/mongodb-and-vercel-from-idea-to-global-fullstack-app-in-seconds","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/azure-cosmosdb-integration-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/algolia-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","title":"Monitoring is in public beta for Enterprise Teams","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","distance":0.2156},{"site":"vercel-web","path":"/blog/introducing-monitoring","distance":0.2447},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","distance":0.2502},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","distance":0.2613},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.2637}],"related":[{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","title":"Monitoring is now available to view traffic and performance data for improved observability ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-monitoring","distance":0.1778},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","distance":0.2156},{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.2512},{"site":"vercel-changelog","path":"/changelog/explore-bot-traffic-data-now-in-monitoring-beta","distance":0.254},{"site":"vercel-changelog","path":"/changelog/aggregate-and-visualize-traffic-data-with-monitoring","distance":0.2571}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query/monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/explore-bot-traffic-data-now-in-monitoring-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aggregate-and-visualize-traffic-data-with-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","title":"Monitoring pricing reduced up to 87%","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/edge-function-metrics-now-available-in-monitoring"},{"site":"vercel-changelog","path":"/changelog/enhanced-firewall-data-now-available-in-monitoring"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2081},{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","distance":0.2542},{"site":"vercel-web","path":"/blog/introducing-monitoring","distance":0.2739},{"site":"vercel-changelog","path":"/changelog/no-base-fee-for-observability-plus","distance":0.2815},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","distance":0.2828}],"related":[{"site":"vercel-docs","path":"/docs/query/monitoring/limits-and-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-base-fee-for-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-now-available-to-view-traffic-and-performance-data-for","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","title":"Moonshot AI's Kimi K2 model is now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.0323},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","distance":0.1059},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.1073},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","distance":0.1533},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","distance":0.1768}],"related":[{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","title":"Moonshot AI's Kimi K2 Thinking models are now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","distance":0.1016},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","distance":0.1059},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.1359},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","distance":0.1556},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","distance":0.163}],"related":[{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/moonshot-ais-kimi-k2-0905-model-is-now-supported-in-vercel-ai-gateway","title":"Moonshot AI's Kimi K2 0905 model is now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","distance":0.0323},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","distance":0.1015},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","distance":0.1016},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","distance":0.1439},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","distance":0.1549}],"related":[{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-model-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/moonshot-ai-kimi-k2-thinking-and-kimi-k2-thinking-turbo-are-now-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k2-7-code-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-is-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/more-flexible-environment-variables-in-edge-functions-and-middleware","title":"More flexible Environment Variables in Edge Functions and Middleware","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.2002},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.2091},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.2443},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.248}],"related":[{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","title":"More granular observability for Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/query"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-memory-observability","distance":0.1445},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.2085},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","distance":0.2181},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.2197},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.225}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-memory-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","title":"More Secure Deployment Protection","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.1395},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","distance":0.1515},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.1645},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/set-team-wide-defaults-for-deployment-protection","distance":0.2075}],"related":[{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"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-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-team-wide-defaults-for-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/multiple-git-namespaces-per-personal-account-and-team","title":"Multiple Git namespaces per Personal Account and Team","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/new-git-integration-settings","distance":0.2427},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.2847},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","distance":0.2852},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.3059},{"site":"vercel-docs","path":"/docs/protected-git-scopes","distance":0.3067}],"related":[{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-limit-for-projects-per-git-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","title":"Muse Image now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","distance":0.1475},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","distance":0.1627},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","distance":0.186},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","distance":0.1906},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","distance":0.2364}],"related":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/image-generation/openai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","title":"Muse Spark 1.1 is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","distance":0.0585},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","distance":0.1153},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","distance":0.1475},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","distance":0.1721},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","distance":0.2846}],"related":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","title":"Muse Spark 1.2 is now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","distance":0.0585},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","distance":0.0813},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","distance":0.1627},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","distance":0.1628},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","distance":0.2789}],"related":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","title":"Muse Spark 1.3 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","distance":0.0813},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","distance":0.1153},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","distance":0.1416},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","distance":0.1906},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","distance":0.2661}],"related":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ember-1-from-fireworks-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/muse-wonder-now-available-on-ai-gateway","title":"Muse Wonder now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","distance":0.1416},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","distance":0.1628},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","distance":0.1721},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","distance":0.186},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.2633}],"related":[{"site":"vercel-changelog","path":"/changelog/muse-spark-1-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-2-is-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-spark-1-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/muse-image-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/mux-joins-the-vercel-marketplace","title":"Mux joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","distance":0.307},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","distance":0.3205},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3216},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.3268},{"site":"vercel-web","path":"/blog/how-mux-shipped-durable-video-workflows-with-their-mux-ai-sdk","distance":0.3283}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-mux-shipped-durable-video-workflows-with-their-mux-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/convex-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","title":"Nano Banana 2.1 now available on AI Gateway","summary":null,"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/sdks-and-apis/openai-chat-completions/image-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","distance":0.0994},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","distance":0.1227},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","distance":0.1263},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.2349},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","distance":0.2495}],"related":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mai-image-2-6-and-mai-image-2-6-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","title":"Nano Banana 2 is live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","distance":0.0994},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","distance":0.1018},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","distance":0.1043},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.2016},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","distance":0.229}],"related":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-5-flash-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","title":"Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image) now on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","distance":0.1018},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","distance":0.1119},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","distance":0.1263},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.2097},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.2193}],"related":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","title":"Nano Banana Pro (Gemini 3 Pro Image) now available in the AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","distance":0.1043},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","distance":0.1119},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","distance":0.1227},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","distance":0.1913},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.2003}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-google-for-gemini-3-pro-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-lite-gemini-3-1-flash-lite-image-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-2-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-pro-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","title":"Native Deployment Checks are now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent"},{"site":"vercel-docs","path":"/docs/deployment-checks"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-checks","distance":0.2708},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","distance":0.2787},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","distance":0.2859},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","distance":0.2875},{"site":"vercel-docs","path":"/docs/checks","distance":0.2937}],"related":[{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/checks-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checkly-integration-and-checks-api-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-checks-for-missing-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","title":"Native support for SvelteKit's new OpenTelemetry spans","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","distance":0.2632},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","distance":0.2872},{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","distance":0.2877},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-route-aware-for-sveltekit-apps","distance":0.2884},{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","distance":0.2987}],"related":[{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-sveltekit-1-0-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-future-of-svelte-an-interview-with-rich-harris","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/open-telemetry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-route-aware-for-sveltekit-apps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nemotron-3-ultra-now-available-on-ai-gateway","title":"Nemotron 3 Ultra now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sakana-fugu-ultra-now-available-on-ai-gateway","distance":0.2487},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","distance":0.2516},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2549},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.2609},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","distance":0.2644}],"related":[{"site":"vercel-changelog","path":"/changelog/sakana-fugu-ultra-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","title":"Neon now available on Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2004},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","distance":0.2483},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.2653},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","distance":0.2756}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","title":"New build and deploy capabilities in Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-web","path":"/blog/build-output-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/build-output-api","distance":0.1682},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.1903},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.1978},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2109},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.2179}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-configuration-overrides-available-per-deployment","title":"New configuration overrides available per-deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2668},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","distance":0.3039},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.3065},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","distance":0.3146},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","distance":0.3148}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/configure-a-build","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-configuring-ignored-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","title":"New custom visualization in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2076},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","distance":0.2289},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2354},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","distance":0.2458},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2463}],"related":[{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","title":"New dashboard navigation available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.0741},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","distance":0.1846},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.2321},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2589},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","distance":0.2711}],"related":[{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-dashboard-navigation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/quickly-navigate-the-dashboard-with-shortcuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","title":"New deployments of vulnerable Next.js applications are now blocked by default","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"},{"site":"vercel-web","path":"/blog/resources-for-protecting-against-react2shell"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-deployments-with-vulnerable-versions-of-next-mdx-remote-are-now-blocked-by-default","distance":0.0975},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.2197},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.2369},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.261},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.2701}],"related":[{"site":"vercel-changelog","path":"/changelog/new-deployments-with-vulnerable-versions-of-next-mdx-remote-are-now-blocked-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-deployments-with-vulnerable-versions-of-next-mdx-remote-are-now-blocked-by-default","title":"New deployments with vulnerable versions of the third-party package next-mdx-remote are now blocked by default","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","distance":0.0975},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.2781},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.2862},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.3021},{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","distance":0.3178}],"related":[{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","title":"New Domains Registrar API for domain search, pricing, purchase, and management","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web"},{"site":"vercel-docs","path":"/docs/domains/registrar-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/registrar-api","distance":0.1415},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","distance":0.1895},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.194},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2181},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-domain-availability-and-pricing","distance":0.2467}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-domain-availability-and-pricing","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-price-data-for-multiple-domains","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-tld-price-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","title":"New execution duration limit for Edge Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.1884},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.2216},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","distance":0.2386},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.2438},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.2529}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","title":"New filters and metrics available on the Usage Overview","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.1713},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.2225},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","distance":0.2334},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.2605},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.269}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-firewall-challenge-metrics-now-available","title":"New firewall challenge metrics now available","summary":null,"outbound":[{"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/managed-rulesets"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-localized-challenge-pages","distance":0.2432},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.2744},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.2789},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2911},{"site":"vercel-changelog","path":"/changelog/enhanced-firewall-data-now-available-in-monitoring","distance":0.2913}],"related":[{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/challenge-cookieless-requests-on-a-specific-path","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-localized-challenge-pages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-firewall-data-now-available-in-monitoring","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","title":"New help and guides pages on the Vercel docs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","distance":0.2161},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","distance":0.2799},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.2896},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.3046},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.3184}],"related":[{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-instant-rollback-flow","title":"Add context when using Instant Rollback","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/instant-rollback"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","distance":0.2941},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","distance":0.2956},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","distance":0.2993},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","distance":0.3446},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.3882}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/updates-the-description-for-a-rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/canceling-ongoing-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","title":"New integrations to extend your Vercel workflow","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.1688},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.2297},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","distance":0.233},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.2348},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.2431}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-a-powerful-notification-system-for-vercel-with-knock-app","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inngest-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","title":"New monorepo projects now skip builds with unchanged code by default","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos"},{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","distance":0.1916},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","distance":0.2473},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","distance":0.2622},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.2849},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","distance":0.2893}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-notification-controls-available-in-public-beta","title":"Get notified on build failures and more with new notification controls","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","distance":0.1839},{"site":"vercel-web","path":"/blog/building-a-powerful-notification-system-for-vercel-with-knock-app","distance":0.2448},{"site":"vercel-docs","path":"/docs/notifications","distance":0.3007},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.308},{"site":"vercel-web","path":"/blog/changelog-november-2019","distance":0.3316}],"related":[{"site":"vercel-web","path":"/blog/building-a-powerful-notification-system-for-vercel-with-knock-app","via":"neighbor"},{"site":"vercel-docs","path":"/docs/notifications","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-november-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/push-notifications-support-on-desktop-and-mobile","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-npm-package-for-automatic-recovery-of-broken-streaming-markdown","title":"New npm package for automatic recovery of broken streaming markdown","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"streamdown","path":"/docs/termination","distance":0.1922},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.2584},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.2672},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","distance":0.3136},{"site":"streamdown","path":"/docs","distance":0.3163}],"related":[{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"streamdown","path":"/docs","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/gfm","via":"neighbor"},{"site":"streamdown","path":"/docs/security","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-observability-dashboard-for-image-optimization","title":"New Observability dashboard for Image Optimization","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization"},{"site":"vercel-docs","path":"/docs/image-optimization"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization","distance":0.1757},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","distance":0.2574},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2632},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2735},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","distance":0.2819}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-docs","path":"/docs/image-optimization/managing-image-optimization-costs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/changes-to-vercel-image-optimizations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-one-click-ai-bot-managed-ruleset","title":"New one-click AI bot managed ruleset","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/managed-rulesets"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","distance":0.2185},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","distance":0.2348},{"site":"vercel-web","path":"/blog/the-three-types-of-ai-bot-traffic-and-how-to-handle-them","distance":0.2554},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-in-public-beta","distance":0.2642},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","distance":0.2861}],"related":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-three-types-of-ai-bot-traffic-and-how-to-handle-them","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-block-bots-openai-gptbot","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","title":"New Pro teams now default to 30-day deployment retention","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/deployment-storage/optimize"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","distance":0.1667},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.1886},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","distance":0.2104},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","distance":0.2159},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","distance":0.2211}],"related":[{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","title":"New project access controls for Enterprise customers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","distance":0.1822},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.1839},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","distance":0.2157},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.2424}],"related":[{"site":"vercel-docs","path":"/docs/rbac/access-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-quick-actions-in-observability","title":"New quick actions in Observability","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2383},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2632},{"site":"vercel-changelog","path":"/changelog/ai-query-prompting-now-available-in-observability-plus","distance":0.2885},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","distance":0.2938},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2967}],"related":[{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-query-prompting-now-available-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-observability-query-results-to-csv-or-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-relic-integration-now-supports-traces-from-opentelemetry","title":"New Relic Integration now supports traces from OpenTelemetry","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","distance":0.2435},{"site":"vercel-changelog","path":"/changelog/correlate-logs-and-traces-with-opentelemetry-in-vercel-log-drains","distance":0.2899},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","distance":0.3186},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","distance":0.3194},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","distance":0.3245}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-instant-observability-with-the-new-relic-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/correlate-logs-and-traces-with-opentelemetry-in-vercel-log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","title":"New setup page after domain checkout","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2443},{"site":"vercel-web","path":"/blog/dns-records-ui","distance":0.2454},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","distance":0.2487},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","distance":0.2607},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2608}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/dns-records-ui","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-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-email-with-your-vercel-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-slack-integration","title":"New Slack Integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-alerting-for-slack-integration","distance":0.2059},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.2356},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","distance":0.238},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.2817},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2851}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-alerting-for-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-now-available-in-vercels-slack-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","title":"Introducing new token formats and secret scanning","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/rest-api"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/tokens"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","distance":0.286},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","distance":0.2903},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","distance":0.3043},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","distance":0.3073},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.3086}],"related":[{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","title":"New usage dashboard for Enterprise users","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.0612},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.1711},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.1945},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","distance":0.2468},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","distance":0.2605}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-is-in-public-beta-for-enterprise-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","title":"New usage dashboard for Pro customers","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.0612},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.1714},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.1788},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","distance":0.2396}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-utilities-to-work-with-vercel-functions","title":"New utilities to work with Vercel Functions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","distance":0.2715},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","distance":0.3054},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","distance":0.3093},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","distance":0.3132},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.3213}],"related":[{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/waituntil-is-now-available-for-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","title":"New Vercel CLI login flow","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/login"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.2594},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.281},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","distance":0.2827},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","distance":0.2869},{"site":"vercel-docs","path":"/docs/cli/login","distance":0.289}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-vercel-cli-asking-me-to-log-in","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-webhook-events-for-domain-management","title":"New webhook events for domain management","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/subscribe-to-webhook-events-for-vercel-flags","distance":0.2735},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","distance":0.2962},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","distance":0.3232},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.3275},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.3286}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/subscribe-to-webhook-events-for-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/new-webhook-for-promotion-events","title":"New deployment promotion event","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","distance":0.2135},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.2599},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","distance":0.264},{"site":"vercel-docs","path":"/docs/cli/promote","distance":0.3085},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","distance":0.3182}],"related":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/promote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claim-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-forge-6","title":"next-forge 6 is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/next6-1","distance":0.3046},{"site":"vercel-web","path":"/blog/next6","distance":0.3142},{"site":"vercel-changelog","path":"/changelog/next-js-14","distance":0.3369},{"site":"vercel-web","path":"/blog/next4","distance":0.3377},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","distance":0.3401}],"related":[{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6","via":"neighbor"},{"site":"vercel-web","path":"/blog/next4","via":"neighbor"},{"site":"vercel-web","path":"/blog/next3","via":"neighbor"},{"site":"vercel-web","path":"/blog/next-canary","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-js-12-1","title":"Next.js 12.1 is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/next4","distance":0.2256},{"site":"vercel-changelog","path":"/changelog/next-js-14","distance":0.2269},{"site":"vercel-web","path":"/blog/next6-1","distance":0.2389},{"site":"vercel-web","path":"/blog/next3","distance":0.2458},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","distance":0.2594}],"related":[{"site":"vercel-web","path":"/blog/next4","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"vercel-web","path":"/blog/next3","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-the-most-ambitious-sites-on-the-web-with-vercel-and-next-js-14","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-12","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","title":"Next.js 13.4 on Vercel","summary":null,"outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/data-fetching"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/next-js-14","distance":0.0738},{"site":"vercel-web","path":"/blog/using-the-latest-next-js-12-3-features-on-vercel","distance":0.1715},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","distance":0.1782},{"site":"vercel-web","path":"/blog/building-the-most-ambitious-sites-on-the-web-with-vercel-and-next-js-14","distance":0.1812},{"site":"vercel-web","path":"/blog/nextjs-app-router-data-fetching","distance":0.1965}],"related":[{"site":"vercel-web","path":"/blog/using-the-latest-next-js-12-3-features-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-the-most-ambitious-sites-on-the-web-with-vercel-and-next-js-14","via":"neighbor"},{"site":"vercel-web","path":"/blog/nextjs-app-router-data-fetching","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-js-14","title":"Next.js 14 on Vercel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/next-js-13-4","distance":0.0738},{"site":"vercel-web","path":"/blog/building-the-most-ambitious-sites-on-the-web-with-vercel-and-next-js-14","distance":0.142},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","distance":0.1586},{"site":"vercel-web","path":"/blog/using-the-latest-next-js-12-3-features-on-vercel","distance":0.1659},{"site":"vercel-web","path":"/blog/next6-1","distance":0.1867}],"related":[{"site":"vercel-web","path":"/blog/building-the-most-ambitious-sites-on-the-web-with-vercel-and-next-js-14","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-the-latest-next-js-12-3-features-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6-1","via":"neighbor"},{"site":"vercel-web","path":"/blog/next3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","title":"Next.js AI Chatbot 2.0","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/ai-sdk-3-generative-ui"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","distance":0.0948},{"site":"vercel-web","path":"/blog/introducing-chatbot","distance":0.1978},{"site":"vercel-changelog","path":"/changelog/gemini-ai-chatbot-with-generative-ui-support","distance":0.2033},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.2616},{"site":"vercel-web","path":"/blog/ai-sdk-3-generative-ui","distance":0.2694}],"related":[{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-3","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nextjs-langchain-vercel-ai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-ai-chatbot-with-generative-ui-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-template-3-0","title":"Next.js AI Chatbot Template 3.0","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","distance":0.0948},{"site":"vercel-web","path":"/blog/introducing-chatbot","distance":0.2237},{"site":"vercel-changelog","path":"/changelog/gemini-ai-chatbot-with-generative-ui-support","distance":0.2585},{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.3134},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.3174}],"related":[{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-ai-chatbot-2-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-ai-chatbot-with-generative-ui-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-elements","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","title":"Next.js May 2026 security release","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","distance":0.1175},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.1192},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","distance":0.1367},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","distance":0.1544},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1652}],"related":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","title":"Vercel applications are protected from Next.js August 2026 security vulnerabilities","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","distance":0.1378},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.154},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","distance":0.1649},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.1919},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.2197}],"related":[{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nile-and-motherduck-join-the-vercel-marketplace","title":"Nile and MotherDuck join the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2745},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2825},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.2844},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.2886},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.2905}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/no-base-fee-for-observability-plus","title":"Base fee for Observability Plus removed","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2341},{"site":"vercel-docs","path":"/docs/observability/observability-plus","distance":0.2779},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","distance":0.2814},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","distance":0.2815},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","distance":0.3201}],"related":[{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","title":"No build queues: On-demand concurrent builds now on by default","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.1234},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","distance":0.1336},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.1673},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","distance":0.1694},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.1938}],"related":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","title":"Node.js 10 is being deprecated","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.1134},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.1174},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.1615},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.171},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.1808}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","title":"Node.js 12 is being deprecated","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.0741},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.1082},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","distance":0.1174},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.1399},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.1421}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","title":"Node.js 14 and 16 are being deprecated","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.0741},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.0843},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.1011},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.1067},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","distance":0.1134}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","title":"Node.js 14 LTS is now available","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/log-drains"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","distance":0.1408},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.171},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.216},{"site":"vercel-changelog","path":"/changelog/node-js-version-now-customizable-in-the-project-settings","distance":0.2209},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.2576}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/guides/upgrading/version-14","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/upgrading/version-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-version-now-customizable-in-the-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","title":"Node.js 16 is being deprecated on January 31, 2025","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.0763},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.0843},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.1082},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.1149},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","distance":0.171}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","title":"Node.js 16 LTS is now available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","distance":0.1408},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.1412},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.2274},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.24},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.248}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","title":"Node.js 18 is being deprecated on September 1, 2025","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.0763},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.0961},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.1011},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.1421},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","distance":0.1553}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","title":"Node.js 18 LTS is now available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/improved-support-for-gatsby-sites"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","distance":0.1412},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","distance":0.171},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.1889},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.1931},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.1963}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","title":"Node.js 20 is being deprecated on October 1, 2026","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.0961},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.1067},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.1149},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.1399},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","distance":0.1495}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","title":"Node.js 22 LTS is now generally available for builds and functions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.1231},{"site":"vercel-changelog","path":"/changelog/nodejs-20","distance":0.1406},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.1604},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.1931},{"site":"vercel-web","path":"/blog/node-10","distance":0.2216}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nodejs-20","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","title":"Node.js 24 LTS is now available on Sandbox","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-runtime-now-defaults-to-version-24-for-vercel-sandbox","distance":0.0746},{"site":"vercel-changelog","path":"/changelog/node-js-26-x-now-available-on-vercel-sandboxes","distance":0.0947},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.2144},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2495},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.2661}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-runtime-now-defaults-to-version-24-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-26-x-now-available-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","title":"Node.js 24 LTS is now generally available for builds and functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.1604},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.1889},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.1924},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","distance":0.2144},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","distance":0.216}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-26-x-now-available-on-vercel-sandboxes","title":"Node.js 26.x now available on Vercel Sandboxes","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","distance":0.0947},{"site":"vercel-changelog","path":"/changelog/node-js-runtime-now-defaults-to-version-24-for-vercel-sandbox","distance":0.133},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2246},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/nodejs-20","distance":0.2783}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-runtime-now-defaults-to-version-24-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nodejs-20","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-runtime-now-defaults-to-version-24-for-vercel-sandbox","title":"Node.js runtime now defaults to version 24 for Vercel Sandbox","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","distance":0.0746},{"site":"vercel-changelog","path":"/changelog/node-js-26-x-now-available-on-vercel-sandboxes","distance":0.133},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.2405},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.2675},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2806}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-available-on-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-26-x-now-available-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","title":"Node.js v20 LTS is now generally available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/nodejs-20","distance":0.0658},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.1231},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.1924},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.1963},{"site":"vercel-web","path":"/blog/node-10","distance":0.2092}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nodejs-20","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","title":"Node.js Vercel Functions now support fetch web handlers","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.2877},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2939},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.3163},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.3234},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.3243}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/quickstart","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-node-helpers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-support-graceful-shutdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation","title":"Node.js Vercel Functions now support per-path request cancellation ","summary":null,"outbound":[{"site":"ai-sdk","path":"/docs/advanced/stopping-streams"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-request-cancellation"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-request-cancellation","distance":0.0441},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.2875},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-support-graceful-shutdown","distance":0.3059},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.3114},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.3243}],"related":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-request-cancellation","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/auto-job-cancellation-for-vercel-github","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-support-graceful-shutdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-request-cancellation","title":"Node.js Vercel Functions now support request cancellation","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation","distance":0.0441},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js","distance":0.3072},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-support-graceful-shutdown","distance":0.3329},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.3331},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","distance":0.3505}],"related":[{"site":"vercel-web","path":"/blog/auto-job-cancellation-for-vercel-github","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/stopping-streams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/advanced-node-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vcr/cancel-a-blob-upload","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-support-graceful-shutdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-inflight-cancellation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/node-js-version-now-customizable-in-the-project-settings","title":"Node.js Version now customizable in the Project Settings","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","distance":0.2209},{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","distance":0.2587},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.2661},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.2915},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","distance":0.2997}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nodejs-20","title":"Node.js v20 LTS is now available in beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.0658},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.1406},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","distance":0.2074},{"site":"vercel-web","path":"/blog/node-10","distance":0.2116},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.2245}],"related":[{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-24-lts-is-now-generally-available-for-builds-and-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/notion-chat-sdk","title":"Bring your agent to Notion with Chat SDK","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/contributing/building"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","distance":0.225},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2602},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","distance":0.2709},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.271},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2743}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"chat-sdk","path":"/docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-native-slack-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-agentphone-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","title":"Nova 2 Lite now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2216},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.2231},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.2288},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.2305}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/november-2022","title":"Improvements and fixes","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1147},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.1485},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.1659},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.1672},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.1679}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","title":"npm i flags","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","distance":0.0969},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","distance":0.1884},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","distance":0.1899},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","distance":0.1986},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.207}],"related":[{"site":"vercel-docs","path":"/docs/flags/flags-sdk-reference","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"flags-sdk","path":"/docs/frameworks/next","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/principles/flags-as-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-now-supports-openfeature","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","title":"Nuxt analytics available on Vercel Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","distance":0.0538},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","distance":0.1724},{"site":"vercel-web","path":"/blog/gatsby-analytics","distance":0.1897},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2159},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","distance":0.233}],"related":[{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-made-the-vercel-dashboard-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","title":"Nuxt July 2026 security advisory","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-52662-xss-on-nuxt-devtools","distance":0.2075},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.2276},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.2489},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.2522},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.2593}],"related":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-52662-xss-on-nuxt-devtools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","title":"Nuxt MCP Toolkit now supports MCP apps","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/build-mcp-server-with-nuxt","distance":0.1522},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","distance":0.2625},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","distance":0.2912},{"site":"vercel-changelog","path":"/changelog/webmcp-mcp-handler","distance":0.2993},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.3033}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-mcp-server-with-nuxt","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/mcp-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-mcp-apps","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","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-web","path":"/blog/the-second-wave-of-mcp-building-for-llms-not-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/webmcp-mcp-handler","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","title":"OAuth support added to MCP Adapter","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/mcp"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2188},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.2341},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","distance":0.2536},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","distance":0.2599},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","distance":0.2669}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","title":"Observability added to AI Gateway alpha","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-web","path":"/blog/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.2036},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.204},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.2062},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","distance":0.2446},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2535}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/live-model-performance-metrics-accessible-via-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/observability-for-edge-requests-now-includes-more-traffic-parameters","title":"Observability for Edge Requests now includes more traffic parameters","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-function-metrics-now-available-in-monitoring","distance":0.2336},{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","distance":0.2466},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.2531},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2543},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2806}],"related":[{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-navigating-the-edge-network","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-function-metrics-now-available-in-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","title":"Observability Plus replacing legacy Monitoring","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/query"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2063},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","distance":0.2289},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2382},{"site":"vercel-docs","path":"/docs/query/monitoring","distance":0.2413},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2496}],"related":[{"site":"vercel-docs","path":"/docs/query/monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/observability-plus","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","title":"Observe your feature flags with the Vercel DX platform","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","distance":0.1782},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.2019},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2069},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","distance":0.2078},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2138}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/observability/web-analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","title":"OpenID Connect (OIDC) Federation now available in Beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","distance":0.0578},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","distance":0.1797},{"site":"vercel-docs","path":"/docs/oidc","distance":0.1898},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","distance":0.2589},{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","distance":0.2788}],"related":[{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-and-remote-cache-now-support-openid-connect-oidc","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","title":"On-demand Vercel Agent code reviews","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","distance":0.1683},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","distance":0.1978},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","distance":0.1986},{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.2082},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","distance":0.2106}],"related":[{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review/usage","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/one-click-linking-from-usage-to-vercel-observability-dashboards","title":"One-click linking from Usage to Vercel Observability dashboards","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.27},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.2722},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.2731},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.2822},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.2828}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/one-click-upgrade-for-deprecated-node-js-versions","title":"One-click upgrade for deprecated Node.js versions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js/node-js-versions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bulk-upgrade-deprecated-node-js-versions","distance":0.1212},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.2154},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.259},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.2685},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","distance":0.2725}],"related":[{"site":"vercel-changelog","path":"/changelog/bulk-upgrade-deprecated-node-js-versions","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-10-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/open-data-and-shareable-charts-for-ai-gateway-leaderboards","title":"Access and share AI Gateway leaderboard data","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/ai-gateway-production-index-july-2026"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","distance":0.0849},{"site":"vercel-web","path":"/blog/ai-gateway-production-index-july-2026","distance":0.2292},{"site":"vercel-web","path":"/blog/ai-gateway-production-index","distance":0.239},{"site":"vercel-changelog","path":"/changelog/live-model-performance-metrics-accessible-via-ai-gateway","distance":0.2542},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","distance":0.2594}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/leaderboards","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-production-index","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-production-index-june-2026","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-production-index-september-2026","via":"neighbor"},{"site":"vercel-web","path":"/blog/deepseek-overtakes-google-on-volume-cost-per-token-falls","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/live-model-performance-metrics-accessible-via-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-added-to-ai-gateway-alpha","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/open-graph-link-sharing-inspector","title":"Inspect and validate Open Graph metadata for enhanced link sharing","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/og-preview","distance":0.1865},{"site":"vercel-changelog","path":"/changelog/inspect-open-graph-data-with-the-vercel-toolbar","distance":0.2285},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.3244},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","distance":0.3385},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","distance":0.3475}],"related":[{"site":"vercel-docs","path":"/docs/deployments/og-preview","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-custom-font","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-og-image-generation-fast-dynamic-social-card-images","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inspect-open-graph-data-with-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/generate-shareable-snapshots-of-observability-charts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","title":"Open source Workflow Development Kit is now in public beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-workflow","distance":0.1975},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","distance":0.2457},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","distance":0.2555},{"site":"vercel-web","path":"/blog/workflow-builder-build-your-own-workflow-automation-platform","distance":0.2686},{"site":"vercel-web","path":"/blog/inside-workflow-devkit-how-framework-integrations-work","distance":0.2743}],"related":[{"site":"vercel-web","path":"/blog/introducing-workflow","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-web","path":"/blog/workflow-builder-build-your-own-workflow-automation-platform","via":"neighbor"},{"site":"vercel-web","path":"/blog/inside-workflow-devkit-how-framework-integrations-work","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/workflows-and-steps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-inflight-cancellation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","title":"Open Vercel documentation pages in AI providers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","distance":0.2355},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.2456},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.2977},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","distance":0.3133},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.3248}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-chat-now-available-on-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/open-your-vercel-dashboard-from-the-vercel-cli","title":"Open your Vercel dashboard from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/open"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/open","distance":0.1936},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.2921},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.2944},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-api-cli-command","distance":0.3078},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.3095}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-api-cli-command","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","title":"OpenAI-compatible API endpoints now supported in AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.163},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.2124},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.2243},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","distance":0.2301},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","distance":0.243}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","title":"OpenAI Decisions API now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","distance":0.1531},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-decisions","distance":0.1923},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","distance":0.2089},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","distance":0.2135},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","distance":0.2168}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/decision","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/typesafe","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/liquid-ai-d1-is-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openai-gpt-oss-safeguard-20b-now-available-in-vercel-ai-gateway","title":"OpenAI's GPT-OSS-Safeguard-20B now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","distance":0.1077},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.145},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.1502},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.1581},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.1676}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","title":"OpenAI Ultrafast mode now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","distance":0.2129},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","distance":0.2298},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","distance":0.2311},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2395}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-6-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-6-astra-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openai-will-not-support-the-hong-kong-region-hkg1-for-functions","title":"OpenAI will not support the Hong Kong region (hkg1) for Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3025},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.3539},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","distance":0.358},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.3616},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","distance":0.3813}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","title":"OpenID Connect (OIDC) Federation now generally available","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","distance":0.0578},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","distance":0.1584},{"site":"vercel-docs","path":"/docs/oidc","distance":0.1686},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","distance":0.2491},{"site":"vercel-docs","path":"/docs/oidc/reference","distance":0.2592}],"related":[{"site":"vercel-docs","path":"/docs/oidc","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/oidc/api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-and-remote-cache-now-support-openid-connect-oidc","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/openresponses-api-now-supported-on-vercel-ai-gateway","title":"OpenResponses API now supported on Vercel AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","distance":0.135},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","distance":0.1657},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.2172},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/text-generation","distance":0.2304},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/text-generation","distance":0.2307}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses","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/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/sdks-and-apis/openresponses/advanced","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-for-openai-responses-api-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","title":"Optimized CDN caching and deploying of immutable static assets","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/build-output-api/primitives"},{"site":"vercel-docs","path":"/docs/skew-protection"},{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","distance":0.2185},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.2245},{"site":"vercel-web","path":"/blog/build-output-api","distance":0.2354},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","distance":0.2483},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.2557}],"related":[{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"inbound"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-the-anti-vendor-lock-in-cloud","via":"neighbor"},{"site":"vercel-web","path":"/blog/accelerating-developer-velocity-and-creating-high-impact-web-teams","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","title":"Optionally disable deployment_status webhook events for GitHub Actions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","distance":0.1994},{"site":"vercel-changelog","path":"/changelog/disable-git-integration-comments","distance":0.242},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","distance":0.2534},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.275},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2967}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/git-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/auto-job-cancellation-for-vercel-github","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/disable-git-integration-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/options-allowlist","title":"OPTIONS Allowlist","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist","distance":0.1987},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.3287},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.3313},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.3342},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.3383}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","via":"neighbor"},{"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-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/opus-4-6-fast-mode-available-on-ai-gateway","title":"Opus 4.6 Fast Mode available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/anthropic-messages-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/fast-mode-for-opus-4-7-available-on-ai-gateway","distance":0.0271},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-unified-fast-mode-support","distance":0.1583},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.2247},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","distance":0.2328},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","distance":0.2338}],"related":[{"site":"vercel-changelog","path":"/changelog/fast-mode-for-opus-4-7-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/fast-mode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-unified-fast-mode-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","title":"Opus 4.8 on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","distance":0.0691},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.1011},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.1082},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.1201},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","distance":0.1602}],"related":[{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/opus-4.7-on-ai-gateway","title":"Claude Opus 4.7 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.0682},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","distance":0.0691},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.0854},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.1059},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","distance":0.1212}],"related":[{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-4-6-is-live-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/osaka-japan-is-now-available-on-the-edge-network","title":"Osaka (Japan) is now available on the Edge Network","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","distance":0.2504},{"site":"vercel-changelog","path":"/changelog/frankfurt-germany-is-now-available-on-the-edge-network","distance":0.2876},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3178},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.321},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","distance":0.3214}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cape-town-south-africa-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/frankfurt-germany-is-now-available-on-the-edge-network","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","title":"Overview page in Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.181},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.222},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","distance":0.2231},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","distance":0.2314},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2363}],"related":[{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster","title":"Package installation for v0 builds is now ~70% faster.","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/faster-time-to-start-for-v0-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-time-to-start-for-v0-builds","distance":0.1777},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","distance":0.3011},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","distance":0.3127},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.3146},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.3166}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/papercuts-small-feature-requests-and-bug-fixes","title":"Papercuts, small feature requests, and bug fixes","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","distance":0.1942},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.2137},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2426},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2445},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.2472}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/april-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/parallel-joins-the-vercel-agent-marketplace","title":"Parallel joins the Vercel Agent Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","distance":0.1274},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2974},{"site":"vercel-changelog","path":"/changelog/assistloop-joins-the-vercel-agents-marketplace","distance":0.3043},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.3054},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","distance":0.3055}],"related":[{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/assistloop-joins-the-vercel-agents-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","title":"Parallel's Web Search and tools are live on Vercel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/parallel-joins-the-vercel-agent-marketplace","distance":0.1274},{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","distance":0.2313},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","distance":0.2576},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","distance":0.2607},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.2858}],"related":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-joins-the-vercel-agent-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-ai-sdk-3-2","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/node/web-search-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/password-protection-now-costs-20-per-project-per-month-on-pro","title":"Password Protection is now available per project on Pro","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection"},{"site":"vercel-docs","path":"/docs/deployment-protection/usage-and-pricing"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","distance":0.1839},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.1855},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/password-protection","distance":0.2013},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.2254},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.2346}],"related":[{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/access-control","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":"vercel-kb","path":"/kb/guide/how-do-i-add-password-protection-to-my-vercel-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","title":"Performance and usability improvements for Vercel Blob storage","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.1757},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","distance":0.1787},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.1926},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","distance":0.2002},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","distance":0.2064}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","title":"Performance improvements and setting update for the Vercel Toolbar","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.1618},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.1772},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","distance":0.2287},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.2296}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/persistent-memory-for-eve-agents","title":"Persistent memory for eve agents","summary":null,"outbound":[{"site":"eve","path":"/docs/memory"},{"site":"eve","path":"/docs/memory/custom-provider"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","distance":0.1864},{"site":"eve","path":"/docs/memory","distance":0.2046},{"site":"eve","path":"/docs/memory/file","distance":0.2329},{"site":"eve","path":"/docs/memory/custom-provider","distance":0.2618},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","distance":0.2815}],"related":[{"site":"vercel-kb","path":"/kb/guide/choose-an-eve-memory-provider","via":"inbound"},{"site":"eve","path":"/docs/memory/file","via":"neighbor"},{"site":"eve","path":"/docs/patterns/multi-tenant-memory","via":"neighbor"},{"site":"ai-sdk","path":"/docs/agents/memory","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-a-custom-eve-memory-provider","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-eve-subagents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/chat-sdk-and-eve","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-eve-skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mem0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pinecone-integration-now-available-for-vector-databases","title":"Pinecone integration now available for vector databases","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone","distance":0.3198},{"site":"vercel-kb","path":"/kb/guide/vector-databases","distance":0.3546},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","distance":0.3766},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.3914},{"site":"ai-sdk","path":"/providers/community-providers/vectorstores","distance":0.4134}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vector-databases","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"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-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pixel-canary-is-now-available-in-stealth-for-free-on-ai-gateway","title":"Pixel Canary is now available in stealth for free on AI Gateway","summary":null,"outbound":[{"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/models-and-providers/routing-rules"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend"},{"site":"vercel-docs","path":"/docs/cli/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glyph-cluster-is-now-available-in-stealth-for-free-on-ai-gateway","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","distance":0.2543},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","distance":0.2605},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","distance":0.272},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.2739}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glyph-cluster-is-now-available-in-stealth-for-free-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-1-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/port-8080-is-now-available-in-vercel-sandboxes","title":"Port 8080 is now available in Vercel Sandboxes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2082},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.2085},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","distance":0.2089},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.2285},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2408}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","title":"Vercel now supports post-quantum cryptography","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","distance":0.2829},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.2931},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","distance":0.3006},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","distance":0.3012},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","distance":0.3129}],"related":[{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/posthog-joins-the-vercel-marketplace","title":"PostHog joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","distance":0.2202},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.2397},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2647},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2656},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","distance":0.2757}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/posthog-nextjs-vercel-feature-flags-analytics","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/posthog","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/openfeature/posthog","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pre-generate-domain-ssl-certs-now-in-dashboard","title":"Pre-generate SSL certs, now in the Domains dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/pre-generating-ssl-certs","distance":0.2017},{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","distance":0.3001},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","distance":0.3074},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","distance":0.3085},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.3093}],"related":[{"site":"vercel-kb","path":"/kb/guide/zero-downtime-migration","via":"neighbor"},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/preserve-local-environment-variables-when-linking-with-the-vercel-cli","title":"Preserve local environment variables when linking with the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/link"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-commands-now-scope-to-the-local-directory","distance":0.2778},{"site":"vercel-changelog","path":"/changelog/improved-cli-experience-when-linking-and-creating-environment-variables","distance":0.3033},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","distance":0.3209},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","distance":0.3356},{"site":"vercel-changelog","path":"/changelog/use-native-curl-syntax-with-vercel-cli","distance":0.3567}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","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-changelog","path":"/changelog/vercel-cli-commands-now-scope-to-the-local-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cli-experience-when-linking-and-creating-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-native-curl-syntax-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","title":"Prevent malicious traffic with Attack Challenge Mode for the Vercel Firewall","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing"},{"site":"vercel-web","path":"/pricing"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-localized-challenge-pages","distance":0.2104},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2114},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","distance":0.2117},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","distance":0.2291},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","distance":0.2313}],"related":[{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"inbound"},{"site":"vercel-web","path":"/pricing","via":"inbound"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/attack-mode","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-localized-challenge-pages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/attack-challenge-mode-now-allows-verified-bots-and-vercel-cron-jobs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","title":"Preview your site's Firewall status and Web Analytics from the Project Overview","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/quickstart"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.1625},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.1926},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","distance":0.2238},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.2408},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","distance":0.2455}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-address-details-added-in-the-vercel-firewall-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/preview-links-between-microfrontends-projects-now-serve-all-paths","title":"Preview links between microfrontends projects now serve all paths","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/microfrontends"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","distance":0.1381},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","distance":0.2124},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-now-applies-to-vc-alias-and-branch-domains","distance":0.2401},{"site":"vercel-docs","path":"/docs/microfrontends/routing","distance":0.2787}],"related":[{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-now-applies-to-vc-alias-and-branch-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","title":"Preview URLs optimized for multi-tenant platforms","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix"},{"site":"vercel-docs","path":"/docs/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","distance":0.1473},{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.2447},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","distance":0.2636},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","distance":0.27}],"related":[{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/preview-url-prefixes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/generated-urls","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/reference","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/examples/multi-tenant-template","via":"neighbor"},{"site":"vercel-web","path":"/blog/platforms-starter-kit","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","title":"Pricing for on-demand concurrent builds reduced by over 50%","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.1053},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.1347},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.1673},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","distance":0.1932}],"related":[{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-any-queued-preview","title":"Prioritize Production deployments to build before any queued Preview","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-queued-preview","distance":0.0859},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.2651},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2802},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2963},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","distance":0.3049}],"related":[{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-queued-preview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-queued-preview","title":"Prioritize production builds available on all plans","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-any-queued-preview","distance":0.0859},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.2346},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2408},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.2478},{"site":"vercel-docs","path":"/docs/builds/managing-builds","distance":0.2503}],"related":[{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-any-queued-preview","via":"neighbor"},{"site":"vercel-docs","path":"/docs/builds/managing-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","title":"Prisma joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2038},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.2381},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","distance":0.2483},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","distance":0.25},{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.2547}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","title":"Private storage for Vercel Blob, now available in public beta","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.095},{"site":"vercel-changelog","path":"/changelog/create-private-blob-stores-with-a-single-click-in-v0","distance":0.1543},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.1824},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","distance":0.1962},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.201}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","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-changelog","path":"/changelog/create-private-blob-stores-with-a-single-click-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-consistent-reads-on-private-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","title":"Pro customers can now configure up to 3 regions for Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-web","path":"/blog/effortless-high-availability-for-dynamic-frontends"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","distance":0.1782},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","distance":0.2404},{"site":"vercel-changelog","path":"/changelog/improved-resiliency-for-vercel-functions-with-failover-support","distance":0.245},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.2759},{"site":"vercel-docs","path":"/docs/regions","distance":0.2942}],"related":[{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-multiple-vercel-function-regions-in-the-dashboard","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-resiliency-for-vercel-functions-with-failover-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","title":"Pro customers can now deploy faster without build queues","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.1053},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.1234},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.131},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","distance":0.1799},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","distance":0.2091}],"related":[{"site":"vercel-kb","path":"/kb/guide/why-are-my-vercel-builds-queued","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prioritize-production-deployments-to-build-before-queued-preview","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pro-edge-config-pricing","title":"Edge Config reads and writes now billed per unit","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config","distance":0.2016},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","distance":0.2093},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","distance":0.2613},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.271},{"site":"vercel-changelog","path":"/changelog/function-invocations-now-billed-per-unit","distance":0.2814}],"related":[{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/global-config/migration-guide","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/function-invocations-now-billed-per-unit","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-requests-are-now-called-cdn-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","title":"Pro teams can now run up to 500 concurrent builds","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","distance":0.1694},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","distance":0.1799},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.1932},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","distance":0.2009},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","distance":0.2418}],"related":[{"site":"vercel-changelog","path":"/changelog/no-build-queues-on-demand-concurrent-builds-now-on-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-teams-can-now-ship-faster-without-build-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-enable-on-demand-concurrent-builds-across-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","title":"Program Claude Code, Codex, Pi and other agent harnesses with AI SDK","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters"},{"site":"vercel-changelog","path":"/changelog/fx-ai-sdk-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","distance":0.1619},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1622},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.1635},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","distance":0.1969},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","distance":0.2048}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/claude-code","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/pi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","title":"Automate progressive rollouts with Vercel Flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.2053},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2059},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2223},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","distance":0.2346},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2347}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/cli/roll-out-feature","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-vercel-flags-are-evaluated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/project-avatars","title":"Set your own project avatars","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api/projects/upload-a-project-avatar"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.325},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","distance":0.339},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.3491},{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","distance":0.3506},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","distance":0.3534}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/general-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/favorite-teams-and-projects-to-appear-in-your-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-started-faster-with-the-new-project-creation-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/project-level-deployment-suffixes","title":"Project-level deployment suffixes","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","distance":0.2915},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.3086},{"site":"vercel-web","path":"/blog/branch-domains","distance":0.3114},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.3129},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3165}],"related":[{"site":"vercel-docs","path":"/docs/deployments/preview-deployment-suffix","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","title":"Project-scoped Tokens","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens","distance":0.1795},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","distance":0.2229},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","distance":0.2469},{"site":"vercel-docs","path":"/docs/rest-api/getting-started","distance":0.2915},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","distance":0.3046}],"related":[{"site":"vercel-docs","path":"/docs/accounts/access-tokens","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/generate-a-project-oidc-token","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-delegation-of-subdomains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expiration-dates-now-available-for-access-tokens","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","title":"Project settings are now searchable","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","distance":0.282},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3066},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","distance":0.3111},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","distance":0.3175},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.324}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/consolidated-build-and-deployment-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","title":"Projects can now be renamed","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/git"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2469},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.2651},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","distance":0.2868},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","distance":0.2888},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","distance":0.2926}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-change-the-name-of-my-vercel-project","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/customizing-the-install-command-while-creating-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","title":"Projects can now be transferred to Personal Accounts","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/projects/transferring-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.1201},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","distance":0.2352},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-transfer-projects","distance":0.2561},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","distance":0.2926},{"site":"vercel-changelog","path":"/changelog/2024-01-account-changes","distance":0.2936}],"related":[{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-transfer-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2024-01-account-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","title":"Projects can now be transferred without downtime","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","distance":0.1201},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","distance":0.1373},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-transfer-projects","distance":0.2203},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","distance":0.2319},{"site":"vercel-changelog","path":"/changelog/2024-01-account-changes","distance":0.2541}],"related":[{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects/transferring-projects","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-to-personal-accounts","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-customers-can-now-transfer-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2024-01-account-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-moving-between-your-teams-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instantly-transfer-domains-to-new-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","title":"Projects using pnpm can now be deployed with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","distance":0.2099},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","distance":0.2241},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","distance":0.2346},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","distance":0.2654},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","distance":0.2728}],"related":[{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","title":"Protect against OWASP risks with the Vercel Firewall","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.1592},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","distance":0.173},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2071},{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel","distance":0.2092},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.2158}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","title":"Protect past Production Deployments with Deployment Protection","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/generated-urls"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.1395},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.1515},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.168},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.2182},{"site":"vercel-changelog","path":"/changelog/set-team-wide-defaults-for-deployment-protection","distance":0.2189}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"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-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-team-wide-defaults-for-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","title":"Protect production deployments for free on every plan","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/password-protection-now-costs-20-per-project-per-month-on-pro"},{"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-protect-deployments/vercel-authentication"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.1302},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.146},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","distance":0.1501},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","distance":0.154},{"site":"vercel-docs","path":"/docs/deployment-protection","distance":0.1623}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/usage-and-pricing","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-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protect-your-edge-config-with-a-json-schema","title":"Protect your Edge Config with a JSON schema","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","distance":0.267},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","distance":0.2757},{"site":"vercel-changelog","path":"/changelog/backups-now-available-for-vercel-edge-config","distance":0.2828},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.2969},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.306}],"related":[{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","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-config-schema","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/backups-now-available-for-vercel-edge-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/schema-autocomplete-and-validation-for-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-global-config","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","title":"Protected Preview Deployments available on all plans","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.0898},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.1501},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.196},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.2131}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/locking-down-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protected-source-maps-ship-browser-source-maps-securely","title":"Protected Source Maps: Ship browser source maps securely","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"},{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/protected-source-maps","distance":0.1958},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","distance":0.3265},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.3291},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","distance":0.3361},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.3483}],"related":[{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protection-against-react-router-and-remix-vulnerabilities-cve-2025-43864","title":"Protection against React Router and Remix vulnerabilities","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/protection-against-react-router-vulnerability-cve-2025-31137","distance":0.0904},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.2138},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.2154},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","distance":0.2219},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","distance":0.2467}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/protection-against-react-router-vulnerability-cve-2025-31137","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protection-against-react-router-vulnerability-cve-2025-31137","title":"Protection against React Router vulnerability CVE-2025-31137","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/protection-against-react-router-and-remix-vulnerabilities-cve-2025-43864","distance":0.0904},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.2571},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","distance":0.2698},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.27},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.2718}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/protection-against-react-router-and-remix-vulnerabilities-cve-2025-43864","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/protection-bypass-for-automation-multiple-secrets","title":"Protection bypass for automation now supports multiple secrets","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"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-security-with-automation-testing-now-available-on-all-plans","distance":0.1939},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation","distance":0.2652},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection","distance":0.2724},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","distance":0.2729},{"site":"vercel-docs","path":"/docs/deployment-protection/automated-agent-access","distance":0.2914}],"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-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-security-with-automation-testing-now-available-on-all-plans","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/provider-level-custom-timeouts-for-faster-fail-over-on-ai-gateway","title":"Customize timeouts for faster automatic failover on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-timeouts","distance":0.193},{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","distance":0.2676},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openresponses/advanced","distance":0.2873},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.3134},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","distance":0.318}],"related":[{"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-options","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-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/model-fallbacks-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-oss-20b-and-gpt-oss-120b-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/confidence-based-decision-fallbacks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","title":"Proxied responses now cacheable via CDN-Cache-Control headers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.1831},{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","distance":0.2181},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","distance":0.2245},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","distance":0.256},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.2735}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","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-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-cdn-proxying-to-external-origins","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cdn-origin-timeout-increased-to-two-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","title":"Public environment variables now display a warning","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hints-now-available-when-creating-environment-variables","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.2739},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","distance":0.2793},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","distance":0.2976}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hints-now-available-when-creating-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/pull-anomaly-alert-details-using-the-vercel-cli","title":"Pull anomaly alert details using the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/alerts"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","distance":0.2081},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","distance":0.2335},{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","distance":0.236},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","distance":0.2514},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","distance":0.2683}],"related":[{"site":"vercel-kb","path":"/kb/guide/monitor-uptime-for-ai-native-apps-with-vercel-alerts","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/alerts/configure-alerts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alert-configuration-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-include-error-spikes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-now-available-via-email","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/purge-your-remote-caches-build-and-ci-artifacts","title":"Purge your Remote Cache's build and CI artifacts","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.2747},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","distance":0.297},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.3},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.3075},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","distance":0.3088}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/push-notifications-support-on-desktop-and-mobile","title":"Push notifications support on desktop and mobile","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/notifications"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/building-a-powerful-notification-system-for-vercel-with-knock-app","distance":0.3267},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","distance":0.3319},{"site":"vercel-changelog","path":"/changelog/new-notification-controls-available-in-public-beta","distance":0.3379},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.3529},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.3663}],"related":[{"site":"vercel-web","path":"/blog/building-a-powerful-notification-system-for-vercel-with-knock-app","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-notification-controls-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","title":"Python 3.12 and Ruby 3.3 are now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","distance":0.187},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","distance":0.2269},{"site":"vercel-changelog","path":"/changelog/upgrading-ruby-v2-7-to-v3-2","distance":0.2371},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","distance":0.2903},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","distance":0.3561}],"related":[{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upgrading-ruby-v2-7-to-v3-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-v20-lts-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","title":"Python 3.13 and 3.14 are now available ","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","distance":0.187},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","distance":0.2813},{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","distance":0.2923},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","distance":0.3066},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","distance":0.3501}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-package-manager-uv-is-now-available-for-builds-with-zero","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","title":"Python 3.6 is being deprecated","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","distance":0.1947},{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","distance":0.2903},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","distance":0.295},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","distance":0.3066},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","distance":0.3076}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python/python-version","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-12-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","title":"Python 3.9 is now available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","distance":0.1947},{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","distance":0.2269},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","distance":0.2813},{"site":"vercel-changelog","path":"/changelog/upgrading-ruby-v2-7-to-v3-2","distance":0.3924},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","distance":0.4}],"related":[{"site":"vercel-changelog","path":"/changelog/python-3-6-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upgrading-ruby-v2-7-to-v3-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-function-bundles-now-include-precompiled-bytecode","title":"Python function bundles now include precompiled bytecode","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.2541},{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","distance":0.2691},{"site":"vercel-changelog","path":"/changelog/bytecode-caching-for-serverless-functions-by-default","distance":0.2713},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","distance":0.3323}],"related":[{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bytecode-caching-for-serverless-functions-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-package-manager-uv-is-now-available-for-builds-with-zero","title":"Python package manager uv is now available for builds with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vlt-is-now-available-in-builds-via-zero-configuration","distance":0.2857},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.3458},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","distance":0.3598},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.3714},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","distance":0.3715}],"related":[{"site":"vercel-web","path":"/blog/investing-in-the-python-ecosystem","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vlt-is-now-available-in-builds-via-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-13-and-3-14-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","title":"Python projects now support routing rules","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cdn"},{"site":"vercel-docs","path":"/docs/cli/routes"},{"site":"vercel-docs","path":"/docs/routing"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","distance":0.1785},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","distance":0.2241},{"site":"vercel-docs","path":"/docs/routing","distance":0.2602},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","distance":0.2716},{"site":"vercel-changelog","path":"/changelog/transform-rules-are-now-available-in-vercel-json","distance":0.2745}],"related":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-application-aware-routing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-reverse-proxy-rewrites-external","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/routing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/transform-rules-are-now-available-in-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fastapi-frontends-and-static-files-served-from-the-cdn","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta","title":"Python support added to in-function concurrency beta","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/in-function-concurrency-now-in-public-beta"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/in-function-concurrency-now-in-public-beta","distance":0.1116},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.2457},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","distance":0.2677},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","distance":0.2685},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","distance":0.2789}],"related":[{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","title":"Python Vercel Functions bundle size limit increased to 500MB","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/limitations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","distance":0.1233},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.2579},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.266},{"site":"vercel-changelog","path":"/changelog/python-function-bundles-now-include-precompiled-bytecode","distance":0.2691},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","distance":0.2763}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-function-bundles-now-include-precompiled-bytecode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-logging-limits-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","title":"Python Vercel Functions now have streaming enabled by default","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","distance":0.0484},{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","distance":0.1454},{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default","distance":0.186},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","distance":0.1952},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2432}],"related":[{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","via":"neighbor"},{"site":"vercel-web","path":"/blog/streaming-for-serverless-node-js-and-edge-runtimes-with-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default","via":"neighbor"},{"site":"vercel-web","path":"/blog/an-introduction-to-streaming-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-available-for-python-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","title":"Query and manage Marketplace databases from the dashboard","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.2267},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2305},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","distance":0.2319},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","distance":0.2582},{"site":"vercel-changelog","path":"/changelog/transfer-marketplace-resources-between-teams","distance":0.2678}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/transfer-marketplace-resources-between-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","title":"Query and visualize workflow data in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2315},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","distance":0.2361},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","distance":0.2534},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.2541},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","distance":0.2625}],"related":[{"site":"vercel-docs","path":"/docs/query","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","title":"Query data on external API requests in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2046},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2117},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2277},{"site":"vercel-changelog","path":"/changelog/external-api-caching-insights-now-in-observability","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","distance":0.2315}],"related":[{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/external-api-caching-insights-now-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","title":"Query Speed Insights from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","distance":0.1692},{"site":"vercel-docs","path":"/docs/speed-insights/accessing-metrics-with-vercel-cli","distance":0.2198},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2231},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.239},{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo","distance":0.2579}],"related":[{"site":"vercel-web","path":"/blog/how-core-web-vitals-affect-seo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights","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/analytics/accessing-metrics-with-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/troubleshooting","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-made-the-vercel-dashboard-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","title":"Query Web Analytics from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","distance":0.1692},{"site":"vercel-docs","path":"/docs/analytics/accessing-metrics-with-vercel-cli","distance":0.1942},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","distance":0.2124},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2183},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2382}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/queues-now-supports-7-day-ttl","title":"Vercel Queues now supports 7-day message TTL","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/queues"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","distance":0.2833},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","distance":0.3028},{"site":"vercel-docs","path":"/docs/queues","distance":0.3064},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.3368},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.357}],"related":[{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/cron-jobs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/quickly-navigate-the-dashboard-with-shortcuts","title":"Quickly navigate the Dashboard with shortcuts","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.2546},{"site":"vercel-changelog","path":"/changelog/command-menu-now-available-in-deployments","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","distance":0.2765},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","distance":0.2767},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2925}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/command-menu-now-available-in-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-navigation-redesign-rollout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-dashboard-navigation-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/get-started-faster-with-the-new-project-creation-flow","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","title":"Qwen 3.5 Plus is on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.0441},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.0684},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1128},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.1215},{"site":"vercel-changelog","path":"/changelog/qwen-3-max-thinking-now-available-on-ai-gateway","distance":0.1312}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-max-thinking-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","title":"Qwen 3.7 Max now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.0487},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.0783},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.0855},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.1215},{"site":"vercel-changelog","path":"/changelog/qwen-3-max-thinking-now-available-on-ai-gateway","distance":0.126}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-max-thinking-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","title":"Qwen 3.7 Plus now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.0448},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.0684},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.0783},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.0796},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","distance":0.1098}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","title":"Qwen 3.8 Flash now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.1098},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1156},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.1246},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.1365},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.1441}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-0902-now-available-on-ai-gateway","title":"Qwen 3.8 Max 0902 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1152},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.1398},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.1532},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.158},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","distance":0.1692}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","title":"Qwen 3.8 Max now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.0487},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.0796},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.1048},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.1128},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-0902-now-available-on-ai-gateway","distance":0.1152}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-0902-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3-max-thinking-now-available-on-ai-gateway","title":"Qwen 3 Max Thinking now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.126},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1278},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.1312},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.143},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.1431}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","title":"Qwen 3.6 Plus on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.0441},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.0448},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.0855},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1048},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","distance":0.1246}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen3-coder-is-now-supported-in-vercel-ai-gateway","title":"Qwen3-Coder is now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen3-next-models-are-now-supported-in-vercel-ai-gateway","distance":0.1006},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.14},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","distance":0.1564},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.1623},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1686}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen3-next-models-are-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/qwen3-next-models-are-now-supported-in-vercel-ai-gateway","title":"Qwen3-Next models are now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/qwen3-coder-is-now-supported-in-vercel-ai-gateway","distance":0.1006},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","distance":0.1296},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","distance":0.138},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","distance":0.1395},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","distance":0.1404}],"related":[{"site":"vercel-changelog","path":"/changelog/qwen3-coder-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/qwen","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3.6-plus-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-5-plus-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-max-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/railway-integration-postgres-redis-mysql","title":"Connect your database with the Railway integration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/connect-your-postgres-db-faster-with-thin-integration","distance":0.3188},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","distance":0.3534},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3582},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.3706},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.3763}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-railway-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-your-postgres-db-faster-with-thin-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-hasura-apis-to-your-app-instantly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/rate-limiting-now-available-on-hobby-with-higher-included-usage-on-pro","title":"Rate limiting now available on Hobby, with higher included usage on Pro","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","distance":0.2194},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.2493},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","distance":0.2995},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.3169},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","distance":0.3184}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-hobby-usage-limits-for-image-optimization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","title":"React Server Components security update: DoS and Source Code Exposure","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","distance":0.066},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","distance":0.0859},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","distance":0.1171},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.1192},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.2074}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","via":"neighbor"},{"site":"vercel-web","path":"/blog/resources-for-protecting-against-react2shell","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","title":"Vercel Analytics are now real-time","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2104},{"site":"vercel-web","path":"/blog/gatsby-analytics","distance":0.2305},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","distance":0.233},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","distance":0.2426}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-made-the-vercel-dashboard-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-accuracy-for-vercel-analytics-charts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","title":"Realtime voice, speech, and transcription now supported on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/speech-to-text"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/text-to-speech"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","distance":0.0558},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","distance":0.1443},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","distance":0.1696},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/realtime","distance":0.1742},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","distance":0.2042}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-streaming-transcription","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-ai-models-are-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-8-live-models-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-voice-think-fast-2-0-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","title":"Recent Preview Deployments now displayed in the dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","distance":0.194},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.1984},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","distance":0.2166},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.231},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","distance":0.2662}],"related":[{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-monorepo-support-in-recent-previews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/recommend-branch-based-feature-flag-overrides","title":"Recommend branch based feature flag overrides","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar"}],"inbound":[{"site":"vercel-web","path":"/blog/feature-flags"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","distance":0.1637},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","distance":0.206},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","distance":0.2407},{"site":"vercel-changelog","path":"/changelog/flags-explorer-is-now-generally-available","distance":0.2814},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2865}],"related":[{"site":"vercel-web","path":"/blog/feature-flags","via":"inbound"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-explorer-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/recraft-image-models-now-on-ai-gateway","title":"Recraft image models now on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/recraft-v4-on-ai-gateway","distance":0.1093},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","distance":0.2274},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","distance":0.2391},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2592},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.2634}],"related":[{"site":"vercel-changelog","path":"/changelog/recraft-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/image-only-models-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/recraft-v4-on-ai-gateway","title":"Recraft V4 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/recraft-image-models-now-on-ai-gateway","distance":0.1093},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","distance":0.2791},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","distance":0.2799},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.2878},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","distance":0.2888}],"related":[{"site":"vercel-changelog","path":"/changelog/recraft-image-models-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-image-2-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v4-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","title":"Redeploy or promote CLI deployments from the dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","distance":0.2263},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2508},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2614},{"site":"vercel-changelog","path":"/changelog/redeploy-without-leaving-project-settings","distance":0.2626},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2628}],"related":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-without-leaving-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/redeploy-without-leaving-project-settings","title":"Redeploy without leaving project settings","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","distance":0.2626},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","distance":0.2969},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.3159},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.3179},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3289}],"related":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-build-cache-can-now-be-enabled-when-redeploying","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","title":"Redesigned Deployments List","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","distance":0.2071},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2245},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","distance":0.2445},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","distance":0.2605},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","distance":0.2628}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","title":"Redesigned search and filtering for runtime logs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2283},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.246},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.2604},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","distance":0.2622},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.265}],"related":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","title":"Redesigned trace viewer for Vercel Workflows","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-workflows-trace-viewer-now-has-a-minimap","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","distance":0.2751},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","distance":0.2847},{"site":"vercel-changelog","path":"/changelog/measure-time-between-steps-in-vercel-workflows","distance":0.2936},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","distance":0.2948}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-workflows-trace-viewer-now-has-a-minimap","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/measure-time-between-steps-in-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-visualize-workflow-data-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","title":"Redirects and rewrites now available in Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/drains"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2294},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","distance":0.2338},{"site":"vercel-changelog","path":"/changelog/middleware-insights-now-available-in-vercel-observability","distance":0.2735},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","distance":0.2852},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","distance":0.2854}],"related":[{"site":"vercel-docs","path":"/docs/routing/rewrites","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/middleware-insights-now-available-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","title":"Reduced build times for large projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.2206},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.2266},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.2283},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2331}],"related":[{"site":"vercel-changelog","path":"/changelog/faster-build-times-with-optimized-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/reduced-log-drains-costs-with-smaller-billable-increments","title":"Reduced Log Drains costs with smaller billable increments","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","distance":0.1332},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.182},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","distance":0.279},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2819},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","distance":0.3007}],"related":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-for-log-drains","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/log-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-log-drains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/reduced-prices-for-tlds-site-space-website-fun-online-store-tech","title":"Reduced prices for TLDs .site, .space, .website, .fun, .online, .store, .tech","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.221},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","distance":0.2434},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2516},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","distance":0.2958},{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","distance":0.3166}],"related":[{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-tld-price-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","title":"Reduced pricing for Turbo build machines","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","distance":0.2117},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","distance":0.2188},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2758},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","distance":0.2792},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","distance":0.2845}],"related":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pricing-for-on-demand-concurrent-builds-reduced-by-over-50-percent","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/referer-now-available-in-runtime-logs","title":"Referer now available in runtime logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","distance":0.2083},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.2711},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2791},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2933},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.2979}],"related":[{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","title":"Refreshed deployment link design in Vercel dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","distance":0.1954},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","distance":0.1984},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2245},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.229},{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2335}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","title":"Vercel Edge Functions can now be regional or global","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.1283},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.1571},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","distance":0.1583},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.168},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.1755}],"related":[{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/regional-inference-now-available-on-ai-gateway","title":"Regional inference now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/regional-inference","distance":0.2158},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2668},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","distance":0.2882},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.3015},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.3068}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-available-on-aws-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/inkling-from-thinking-machines-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kimi-k3-and-kimi-k3-fast-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","title":"Remix projects can now be deployed with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","distance":0.2077},{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","distance":0.2133},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","distance":0.2349},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.242},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.2548}],"related":[{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","title":" Remote Cache API for monorepo build tools is now in public beta","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.1657},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","distance":0.1878},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.1964},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.2029},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","distance":0.2088}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","title":"Remote Cache Usage graphs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","distance":0.1455},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","distance":0.2088},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.2352},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","distance":0.2428},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.2486}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/removing-domains-is-now-much-easier","title":"Removing Domains is now much easier","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2449},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.2506},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","distance":0.2971},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","distance":0.3044},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.3072}],"related":[{"site":"vercel-web","path":"/blog/redirecting-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-march-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/remove-a-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-february-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-must-now-be-managed-at-the-team-level","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domains-can-now-easily-be-transferred-out","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/report-on-out-of-memory-or-disk-space","title":"More detailed report on out of memory or disk space errors on builds","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","distance":0.3084},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","distance":0.316},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","distance":0.368},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.3824},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","distance":0.3946}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-sigkill-out-of-memory-errors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-now-protect-against-out-of-memory-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-error-messages-for-failed-or-canceled-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-build-times-for-large-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/reposition-the-vercel-toolbar","title":"Change the default position of your Vercel Toolbar","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.2362},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.2604},{"site":"vercel-changelog","path":"/changelog/automatically-detect-and-replay-layout-shifts","distance":0.2741},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","distance":0.2902},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","distance":0.2906}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatically-detect-and-replay-layout-shifts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","title":"Repository checkout and Git LFS downloads are now faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/git"},{"site":"vercel-docs","path":"/docs/project-configuration/git-settings"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/git-lfs-support","distance":0.1893},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.2083},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.2269},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.2457},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.2483}],"related":[{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-git-integration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-lfs-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/request-access-to-teams-right-from-the-dashboard","title":"Request access to Teams right from the Dashboard","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","distance":0.2929},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","distance":0.308},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","distance":0.3081},{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","distance":0.3115},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","distance":0.3171}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/teams/request-access-to-a-team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/teams/get-access-request-status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-onboarding-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-tokens-can-now-be-scoped-to-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auto-add-git-committers-to-your-team","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/request-collapsing-for-isr-cache-misses","title":"Request collapsing for ISR cache misses","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-web","path":"/blog/cdn-request-collapsing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/cdn-request-collapsing","distance":0.1271},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing","distance":0.1639},{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","distance":0.275},{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","distance":0.2983},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration","distance":0.3141}],"related":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/request-collapsing","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-a-flexible-way-to-cache-dynamic-content","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-hashicorp-developers-iterate-faster-with-isr","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploys-are-now-up-to-33-faster-for-apps-with-many-isr-pages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/write-utilization-now-available-in-isr-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/requesters-public-ip-postal-code-now-available-in-vercel-functions","title":"Requester's public IP postal code now available in Vercel Functions","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.236},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","distance":0.2542},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","distance":0.3071},{"site":"vercel-changelog","path":"/changelog/new-utilities-to-work-with-vercel-functions","distance":0.3132},{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","distance":0.3171}],"related":[{"site":"vercel-kb","path":"/kb/guide/geo-ip-headers-geolocation-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/request-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-utilities-to-work-with-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/resend-vercel-marketplace","title":"Resend joins the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/agentmail-vercel-marketplace","distance":0.276},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","distance":0.3072},{"site":"vercel-kb","path":"/kb/guide/eve-agent-with-resend","distance":0.3108},{"site":"vercel-kb","path":"/kb/guide/set-up-email-with-your-vercel-domain","distance":0.3108},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","distance":0.3283}],"related":[{"site":"vercel-kb","path":"/kb/guide/set-up-email-with-your-vercel-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agentmail-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-chat-sdk-channel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/resources-tab-allows-instant-searching-and-filtering-of-functions-middleware","title":"Resources tab allows instant searching and filtering of functions, middleware, and static assets","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/functions-tab","distance":0.3132},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","distance":0.3272},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","distance":0.3378},{"site":"vercel-docs","path":"/docs/observability/insights","distance":0.3386},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","distance":0.3419}],"related":[{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/find-deployments-faster-with-redesigned-filters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/rest-api-for-the-vercel-firewall","title":"REST API for the Vercel Firewall","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2009},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","distance":0.2246},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.2651},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","distance":0.2734},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2739}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/restrict-access-with-ip-blocking-by-cidr-range","title":"Restrict access with IP blocking by CIDR range","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","distance":0.2369},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2662},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","distance":0.2823},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.2825},{"site":"vercel-web","path":"/blog/vercel-security","distance":0.2861}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/ip-blocking","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/traffic-spikes","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-firewall-rules-for-ip-blocking","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","title":"Restrict repository deployments to specific teams","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/protected-git-scopes","distance":0.2204},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.2671},{"site":"vercel-changelog","path":"/changelog/git-fork-protection-can-now-be-disabled","distance":0.2775},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.2998},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.3046}],"related":[{"site":"vercel-docs","path":"/docs/protected-git-scopes","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-fork-protection-can-now-be-disabled","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback","title":"Revert and pin deployments with Instant Rollback","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production"},{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","distance":0.1687},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","distance":0.1779},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","distance":0.232},{"site":"vercel-docs","path":"/docs/instant-rollback","distance":0.2482},{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","distance":0.3172}],"related":[{"site":"vercel-docs","path":"/docs/instant-rollback","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/rollback-production-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/rollback","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-public-beta-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-keeps-your-deployments-rollback-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-instant-rollback-flow","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","title":"Reworked Integrations and Integrations Marketplace","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.1341},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.1859},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.2348},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","distance":0.2713},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.273}],"related":[{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","title":"Rewrites and redirects now available in runtime logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/referer-now-available-in-runtime-logs","distance":0.2083},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","distance":0.2338},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.2341},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.2393},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.2397}],"related":[{"site":"vercel-changelog","path":"/changelog/referer-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redirects-and-rewrites-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","title":"Role-based Access Control now generally available on Enterprise Plans","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.1839},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","distance":0.1852},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.189},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","distance":0.2062},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","distance":0.2255}],"related":[{"site":"vercel-docs","path":"/docs/rbac/access-roles/team-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac/access-roles/project-level-roles","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rbac","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-view-only-permissions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/rollbar-joins-the-vercel-marketplace","title":"Rollbar joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.2529},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","distance":0.2714},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3089},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","distance":0.3102},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.3148}],"related":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/rolling-releases-are-now-generally-available","title":"Rolling Releases are now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rolling-releases"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","distance":0.2389},{"site":"vercel-docs","path":"/docs/rolling-releases","distance":0.2627},{"site":"vercel-web","path":"/blog/releasing-safe-and-cost-efficient-blue-green-deployments","distance":0.2646},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases","distance":0.2674},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","distance":0.2752}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend","via":"neighbor"},{"site":"vercel-web","path":"/blog/releasing-safe-and-cost-efficient-blue-green-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rolling-releases/rolling-release-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/instant-rollback-is-now-available-to-revert-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/route-build-traffic-through-static-ips","title":"Route build traffic through Static IPs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/pricing/regional-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","distance":0.1607},{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.2893},{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","distance":0.3041},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","distance":0.3151},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","distance":0.3269}],"related":[{"site":"vercel-docs","path":"/docs/networking/static-ips","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-get-a-fixed-ip-address","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-now-available-for-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/routing-based-on-headers-and-query-string-parameters","title":"Routing based on Headers and Query String Parameters","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","distance":0.2792},{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","distance":0.2966},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","distance":0.3033},{"site":"vercel-docs","path":"/docs/routing","distance":0.3091},{"site":"vercel-kb","path":"/kb/guide/how-can-i-increase-the-limit-of-redirects-or-use-dynamic-redirects-on-vercel","distance":0.3197}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","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-web","path":"/blog/life-of-a-request-application-aware-routing","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-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-i-route-based-on-letter-casing-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-and-share-custom-queries-in-observability-plus","title":"Run and share custom queries in Observability Plus","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","distance":0.1549},{"site":"vercel-changelog","path":"/changelog/ai-query-prompting-now-available-in-observability-plus","distance":0.2128},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","distance":0.2354},{"site":"vercel-changelog","path":"/changelog/new-quick-actions-in-observability","distance":0.2383},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","distance":0.2496}],"related":[{"site":"vercel-changelog","path":"/changelog/create-and-share-queries-with-notebooks-in-vercel-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/query","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-query-prompting-now-available-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-custom-visualization-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-quick-actions-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-background-tasks-with-celery-on-vercel","title":"Run background tasks with Celery on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/caching/runtime-cache"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","distance":0.1545},{"site":"vercel-docs","path":"/docs/frameworks/backend/dramatiq","distance":0.2813},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","distance":0.3035},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","distance":0.3041},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.3123}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/dramatiq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","title":"Run Claude Managed Agents with Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-kb","path":"/kb/guide/run-claude-managed-agent-tools-with-vercel-sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-managed-agents-with-chat-sdk","distance":0.2178},{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","distance":0.2192},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.2194},{"site":"vercel-kb","path":"/kb/guide/using-vercel-sandbox-claude-agent-sdk","distance":0.22},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.227}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"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/running-opencode-securely-with-the-vercel-sandbox","via":"neighbor"},{"site":"vercel-web","path":"/blog/collaborating-with-anthropic-on-claude-sonnet-4-5","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-managed-agents-with-chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-cron-jobs-from-deployment-summary","title":"Run cron jobs from deployment summary","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","distance":0.1256},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","distance":0.2683},{"site":"vercel-web","path":"/blog/cron-jobs","distance":0.2875},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","distance":0.2917},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","distance":0.313}],"related":[{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/cron-jobs","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-kb","path":"/kb/guide/troubleshooting-vercel-cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/crons","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-deployment-summaries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-support-100-per-project-on-every-plan","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-cursor-cloud-agents-vercel-sandbox","title":"Cursor Cloud Agents can now run in Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-kb","path":"/kb/guide/cursor-vercel-sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/cursor","distance":0.216},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","distance":0.2192},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.2375},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","distance":0.2659},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","distance":0.2674}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/cursor","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","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/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ai-gateway-and-vercel-sandbox-now-available-on-hermes-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","title":"Run Docker containers inside Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images"},{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1972},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1982},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","distance":0.1984},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images","distance":0.2076},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","distance":0.2181}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/test-container-image-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-fuse-based-filesystems","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-now-supports-sudo-and-installing-rpm-packages","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-multiple-frameworks-in-one-project-with-vercel-services","title":"Run multiple frameworks in one project with Vercel Services","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/services"},{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","distance":0.1172},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.201},{"site":"vercel-docs","path":"/docs/frameworks","distance":0.2068},{"site":"vercel-docs","path":"/docs/services","distance":0.2142},{"site":"vercel-docs","path":"/docs/services/experimental","distance":0.221}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","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-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/more-frameworks","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-multiple-isolated-agents-in-a-single-sandbox","title":"Run multiple isolated agents in a single Sandbox","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","distance":0.1424},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.2298},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.276},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2764},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","distance":0.2794}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/multi-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","title":"Run scheduled jobs with Vercel Cron Jobs and Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","distance":0.1015},{"site":"vercel-web","path":"/blog/cron-jobs","distance":0.1346},{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.2359},{"site":"vercel-changelog","path":"/changelog/march-2023","distance":0.238},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","distance":0.2387}],"related":[{"site":"vercel-web","path":"/blog/cron-jobs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-terminal-bench-and-other-harbor-evals-on-vercel-sandbox","title":"Run Terminal-Bench and other Harbor evals on Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/harbor"},{"site":"vercel-kb","path":"/kb/guide/run-terminal-bench-harbor-benchmarks-vercel-sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/harbor","distance":0.1614},{"site":"vercel-kb","path":"/kb/guide/run-terminal-bench-harbor-benchmarks-vercel-sandbox","distance":0.1817},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/harbor","distance":0.2664},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2966},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","distance":0.299}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/harbor","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ai-gateway-and-vercel-sandbox-now-available-on-hermes-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","title":"Run untrusted code with Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/lower-pricing-with-active-cpu-pricing-for-fluid-compute"}],"inbound":[{"site":"vercel-web","path":"/blog/gartner-mq-visionary-2025"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"},{"site":"vercel-web","path":"/blog/you-can-just-ship-agents"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.161},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.168},{"site":"vercel-kb","path":"/kb/guide/how-to-execute-ai-generated-code-safely","distance":0.1903},{"site":"vercel-docs","path":"/docs/sandbox","distance":0.209},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","distance":0.2101}],"related":[{"site":"vercel-web","path":"/blog/gartner-mq-visionary-2025","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute","via":"inbound"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-web","path":"/blog/you-can-just-ship-agents","via":"inbound"},{"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-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","title":"Runtime logs can now be filtered by request type and Vercel resource","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.1726},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.2205},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.231},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","distance":0.2393},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.246}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","title":"Runtime logs now appear in the dashboard 6x faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","distance":0.1915},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.1976},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2098},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.2283},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.231}],"related":[{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-cache-reasons","title":"Runtime logs now show cache reasons","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","distance":0.1875},{"site":"vercel-docs","path":"/docs/caching/cache-status","distance":0.2448},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","distance":0.2707},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","distance":0.3117},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.3387}],"related":[{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/caching-details-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","title":"Runtime logs now show event sequences for Vercel requests","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","distance":0.1726},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","distance":0.1832},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.1976},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","distance":0.2341},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","distance":0.2398}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-can-now-be-filtered-by-request-type-and-vercel-resource","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/rust-runtime-now-in-public-beta-for-vercel-functions","title":"Rust runtime now in public beta for Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/rust"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/functions/runtimes/rust","distance":0.1651},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","distance":0.1979},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.2536},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.2737},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","distance":0.2785}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","title":"s1ngularity: supply chain attack in Nx packages","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/glossary"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","distance":0.205},{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","distance":0.2111},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","distance":0.2578},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","distance":0.2696},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.3145}],"related":[{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-july-2026-security-advisory","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","title":"Safely inject credentials in HTTP headers with Vercel Sandbox","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/security-boundaries-in-agentic-architectures"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","distance":0.2123},{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","distance":0.2141},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","distance":0.2567},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","distance":0.2714},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.2934}],"related":[{"site":"vercel-web","path":"/blog/security-boundaries-in-agentic-architectures","via":"inbound"},{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-opencode-securely-with-the-vercel-sandbox","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-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sakana-fugu-ultra-now-available-on-ai-gateway","title":"Sakana Fugu Ultra now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2291},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","distance":0.2388},{"site":"vercel-changelog","path":"/changelog/nemotron-3-ultra-now-available-on-ai-gateway","distance":0.2487},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","distance":0.2617},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","distance":0.2639}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nemotron-3-ultra-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/laguna-s-2-1-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4.6-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","title":"SAML Single Sign-On and Directory Sync now fully available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/request-access-to-teams-right-from-the-dashboard"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/directory-sync","distance":0.2229},{"site":"vercel-docs","path":"/docs/saml","distance":0.2356},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","distance":0.2681},{"site":"vercel-changelog","path":"/changelog/enterprise-managed-users","distance":0.2839},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","distance":0.2883}],"related":[{"site":"vercel-docs","path":"/docs/directory-sync","via":"neighbor"},{"site":"vercel-docs","path":"/docs/saml","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enterprise-managed-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-groups-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/saml-sso-is-now-available-to-pro-teams","title":"SAML SSO is now available to Pro teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/saml"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based"},{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.2121},{"site":"vercel-docs","path":"/docs/saml","distance":0.2463},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","distance":0.2681},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","distance":0.2738},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2774}],"related":[{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/saml-single-sign-on-and-directory-sync-now-fully-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-viewer-seats-now-available-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","title":"Vercel Sandbox creation now returns a ready sandbox","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.202},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2041},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","distance":0.2087},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","distance":0.2089}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sandbox-now-supports-sudo-and-installing-rpm-packages","title":"Sandbox now supports sudo and installing RPM packages","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","distance":0.2205},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","distance":0.2331},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.2416},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.247},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","distance":0.2518}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/runtimes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga","title":"Sandbox persistence is now GA","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox"},{"site":"vercel-kb","path":"/kb/guide/docker"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","distance":0.1019},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.179},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2118},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2204},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","distance":0.2205}],"related":[{"site":"vercel-kb","path":"/kb/guide/docker","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sandbox-sdk-file-permissions","title":"Sandbox SDK adds file permission control","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sandbox-now-supports-sudo-and-installing-rpm-packages","distance":0.2581},{"site":"vercel-changelog","path":"/changelog/simplified-file-retrieval-from-vercel-sandbox-environments","distance":0.2659},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2697},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","distance":0.2836},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","distance":0.2857}],"related":[{"site":"vercel-changelog","path":"/changelog/sandbox-now-supports-sudo-and-installing-rpm-packages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/simplified-file-retrieval-from-vercel-sandbox-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","title":"Sandboxes now expire based on last use","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","distance":0.1475},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2172},{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga","distance":0.2232},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","distance":0.2425}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sanity-vercel-marketplace","title":"Sanity is now available on the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","distance":0.2035},{"site":"vercel-web","path":"/blog/vercel-sanity-innovating-on-a-faster-collaborative-web","distance":0.2594},{"site":"vercel-docs","path":"/docs/integrations/cms","distance":0.3282},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.3401},{"site":"vercel-web","path":"/blog/visual-editing","distance":0.3427}],"related":[{"site":"vercel-docs","path":"/docs/integrations/cms/sanity","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sanity-innovating-on-a-faster-collaborative-web","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/visual-editing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/sanity-eve-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/scaffold-your-chat-apps-with-create-chat-sdk","title":"Scaffold your chat apps with create-chat-sdk","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/create-chat-sdk"},{"site":"vercel-kb","path":"/kb/guide/the-complete-guide-to-chat-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chat-sdk","distance":0.2038},{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","distance":0.2092},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","distance":0.2245},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","distance":0.2254},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","distance":0.2376}],"related":[{"site":"vercel-web","path":"/blog/chat-sdk-brings-agents-to-your-users","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-slack-bot-with-next-js-and-redis","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/ship-a-github-code-review-bot-with-hono-and-redis","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-web-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-messenger-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-adds-twilio-adapter-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/schema-autocomplete-and-validation-for-vercel-json","title":"Schema autocomplete and validation for vercel.json","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/automatic-rest-api-documentation-with-openapi"},{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/protect-your-edge-config-with-a-json-schema","distance":0.3257},{"site":"vercel-changelog","path":"/changelog/vercel-ts","distance":0.3523},{"site":"vercel-changelog","path":"/changelog/automatic-rest-api-documentation-with-openapi","distance":0.3739},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-typescript-sdk","distance":0.3761},{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","distance":0.3784}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/global-config/update-global-config-schema","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-your-edge-config-with-a-json-schema","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-typescript-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","title":"Search and buy domains in the dashboard","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.2143},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2394},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.24},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2446},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2464}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/search-any-public-github-repo-with-grep","title":"Search any public GitHub repo with Grep","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/dark-mode-expanded-search-and-more-in-grep","distance":0.2023},{"site":"vercel-web","path":"/blog/vercel-acquires-grep","distance":0.2568},{"site":"vercel-web","path":"/blog/grep-a-million-github-repositories-via-mcp","distance":0.3249},{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js","distance":0.3323},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.4057}],"related":[{"site":"vercel-web","path":"/blog/vercel-acquires-grep","via":"neighbor"},{"site":"vercel-web","path":"/blog/grep-a-million-github-repositories-via-mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/migrating-grep-from-create-react-app-to-next-js","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dark-mode-expanded-search-and-more-in-grep","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","title":"Search domains on the Vercel dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2143},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","distance":0.2325},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2377},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","distance":0.2441},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.2484}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/search-domains-without-authentication","title":"Search domains without authentication","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/domains"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-domain-availability-and-pricing"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.1632},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","distance":0.1895},{"site":"vercel-docs","path":"/docs/domains/registrar-api","distance":0.214},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2469},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.2633}],"related":[{"site":"vercel-docs","path":"/docs/domains/registrar-api","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-availability-for-multiple-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/view-and-search-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/domains-registrar/get-price-data-for-multiple-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/search-trace-spans-from-the-vercel-cli","title":"Search trace spans from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/traces"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/traces","distance":0.225},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","distance":0.2641},{"site":"vercel-docs","path":"/docs/tracing","distance":0.2959},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","distance":0.3255},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","distance":0.3381}],"related":[{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/traces-now-support-tree-and-waterfall-views","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","title":"Secure Compute and Static IP builds start 64% faster","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","distance":0.2306},{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","distance":0.2444},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","distance":0.2735},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","distance":0.2922},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.2982}],"related":[{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/45-percent-faster-build-initialization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","title":"Secure Compute is now self-serve","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vpc-peering-now-available-as-self-service-for-vercel-secure-compute","distance":0.1705},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","distance":0.1892},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","distance":0.2284},{"site":"vercel-web","path":"/blog/vercel-security","distance":0.2424},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.2436}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-secure-builds-with-hive-and-secure-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/effortless-high-availability-for-dynamic-frontends","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vpc-peering-now-available-as-self-service-for-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/secure-internal-communication-between-services","title":"Secure internal communication between services (beta)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/services/bindings"},{"site":"vercel-docs","path":"/docs/services/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/services/bindings","distance":0.21},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","distance":0.2539},{"site":"vercel-docs","path":"/docs/services","distance":0.2761},{"site":"vercel-changelog","path":"/changelog/run-multiple-frameworks-in-one-project-with-vercel-services","distance":0.2769},{"site":"vercel-kb","path":"/kb/guide/vercel-services","distance":0.2776}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/routing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/full-stack-preview-deployments-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/services/experimental","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-services-fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-rust-on-vercel-with-docker","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-multiple-frameworks-in-one-project-with-vercel-services","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/secure-marketplace-credentials-with-production-only-access","title":"Secure Marketplace credentials with Production-only access","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/secure-your-resource","distance":0.1661},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","distance":0.2965},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.3162},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","distance":0.3204},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.3276}],"related":[{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","title":"See deployment status and comments on active branches","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/switch-between-branches-directly-from-deployments","distance":0.2311},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2445},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2591},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","distance":0.2605},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2625}],"related":[{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/switch-between-branches-directly-from-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/seedance-2-5-now-available-on-vercel-ai-gateway","title":"Seedance 2.5 now available on Vercel AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","distance":0.1128},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","distance":0.2747},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.2797},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/reference-to-video","distance":0.2809},{"site":"vercel-changelog","path":"/changelog/seedream-5-0-pro-is-now-available-on-ai-gateway","distance":0.2881}],"related":[{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","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-changelog","path":"/changelog/seedream-5-0-pro-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","title":"Seedance 2.0 Video Generation on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/seedance-2-5-now-available-on-vercel-ai-gateway","distance":0.1128},{"site":"vercel-changelog","path":"/changelog/seedream-5-0-pro-is-now-available-on-ai-gateway","distance":0.2329},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","distance":0.2447},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.2455},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.2517}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/bytedance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2-5-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/text-to-video","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedream-5-0-pro-is-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/seedream-5-0-pro-is-now-available-on-ai-gateway","title":"Seedream 5.0 Pro is now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","distance":0.2329},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.2556},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.2566},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.2572},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","distance":0.2767}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nano-banana-pro-gemini-3-pro-image-now-available-in-the-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/self-serve-delegation-of-subdomains","title":"Self-serve delegation of subdomains","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.2838},{"site":"vercel-docs","path":"/docs/domains/working-with-domains","distance":0.2848},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","distance":0.2862},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/configuring-domains","distance":0.2996},{"site":"vercel-web","path":"/blog/branch-domains","distance":0.3045}],"related":[{"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-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-web","path":"/blog/wildcard-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/redirecting-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/why-is-my-vercel-domain-unverified","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/self-serve-domain-renewals-and-redemptions-now-available","title":"Self-serve domain renewals and redemptions now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","distance":0.2074},{"site":"vercel-changelog","path":"/changelog/auto-renewal-can-now-be-disabled-for-domains","distance":0.2383},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","distance":0.2675},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2716},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.272}],"related":[{"site":"vercel-docs","path":"/docs/domains/working-with-domains/renew-a-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/lifecycle-of-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/renew-a-domain","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auto-renewal-can-now-be-disabled-for-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-domains-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/self-serve-delegation-of-subdomains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","title":"Sensitive environment variables are now available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-are-being-sunset","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","distance":0.1809},{"site":"vercel-changelog","path":"/changelog/build-logs-now-redact-sensitive-environment-variable-values","distance":0.1917},{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","distance":0.2011},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","distance":0.2094}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/sensitive-environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-logs-now-redact-sensitive-environment-variable-values","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-environment-variable-secrets-sunset-reminder","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/public-environment-variables-now-display-a-warning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","title":"Sentry, Checkly, and Dash0 join the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","distance":0.0712},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.1938},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2245},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2405},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","distance":0.2431}],"related":[{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-integrations-to-extend-your-vercel-workflow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/checks-api-support-added-for-marketplace-integration-providers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rollbar-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","title":"Improvements and Fixes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.1147},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.1421},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","distance":0.1455},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.1517},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.1666}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/serve-personalized-content-faster-with-vary-support","title":"Serve personalized content faster with Vary support","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.3122},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.3244},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","distance":0.3466},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.3505}],"related":[{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-user-experience-of-the-frontend-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-data-cache","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/server-timing-header","title":"Server-Timing response headers will pass through to the client","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/headers/response-headers","distance":0.3823},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","distance":0.384},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.397},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","distance":0.398},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.4072}],"related":[{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-node-helpers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/serverless-functions-are-now-deployed-to-us-east-by-default","title":"Serverless Functions are now deployed to US East by default","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","distance":0.273},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","distance":0.3595},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","distance":0.3658},{"site":"vercel-web","path":"/blog/functions-tab","distance":0.3685},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.3688}],"related":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/region","via":"neighbor"},{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/regional-execution-for-ultra-low-latency-rendering-at-the-edge","via":"neighbor"},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-customers-can-now-select-their-preferred-region-for-serverless","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ip-geolocation-for-serverless-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes","title":"Serverless Functions can now run up to 5 minutes","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/improved-infrastructure-pricing-is-now-active-for-new-customers"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing"},{"site":"vercel-web","path":"/pricing"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","distance":0.2244},{"site":"vercel-changelog","path":"/changelog/lowering-default-serverless-function-timeout-in-enterprise-projects","distance":0.2497},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.2706},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","distance":0.2782},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.2992}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"inbound"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"inbound"},{"site":"vercel-web","path":"/pricing","via":"inbound"},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lowering-default-serverless-function-timeout-in-enterprise-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/service-tiers-now-available-on-ai-gateway","title":"Service tiers now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers"},{"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":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/service-tiers","distance":0.2556},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","distance":0.2608},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","distance":0.2721},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.2871},{"site":"vercel-docs","path":"/docs/ai-gateway/faq","distance":0.2885}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-gpt-5-6-pricing-speed-updates","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","title":"Track a request's full lifecycle with session tracing","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/tracing/session-tracing","distance":0.2186},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","distance":0.2254},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","distance":0.2735},{"site":"vercel-docs","path":"/docs/tracing","distance":0.278},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.3027}],"related":[{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"inbound"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/traces-now-support-tree-and-waterfall-views","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/set-per-user-budgets-on-ai-gateway","title":"Set per-user budgets on AI Gateway","summary":null,"outbound":[{"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/rbac/managing-team-members"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","distance":0.1244},{"site":"vercel-changelog","path":"/changelog/budgets-for-api-keys-on-ai-gateway","distance":0.1697},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/budgets","distance":0.2373},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","distance":0.2895},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-ai-gateway-budgets","distance":0.2908}],"related":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-ai-gateway-budgets","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/upsert-ai-gateway-budget","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/archive-ai-gateway-budget","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/budgets-for-api-keys-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/set-team-wide-defaults-for-deployment-protection","title":"Set team-wide defaults for Deployment Protection","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection"},{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.1936},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.2075},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","distance":0.2189},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","distance":0.2315},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.281}],"related":[{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"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","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-past-production-deployments-with-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-production-deployments-for-free-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","title":"Set up coding agents in one command with AI Gateway","summary":null,"outbound":[{"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/observability-and-spend/budgets"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/logs"},{"site":"vercel-docs","path":"/docs/ai-gateway/observability-and-spend/observability"},{"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/cli/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents","distance":0.1471},{"site":"vercel-kb","path":"/kb/guide/route-coding-agent-spend-through-ai-gateway","distance":0.1532},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/opencode","distance":0.1961},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/deepagents","distance":0.2008},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","distance":0.2079}],"related":[{"site":"vercel-kb","path":"/kb/guide/route-coding-agent-spend-through-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/deepagents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/claude-code","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-i-use-opencode-with-vercel-ai-gateway-to-build-features-fast","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","title":"Shai-Halud Supply Chain Campaign — Expanded Impact & Vercel Response","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","distance":0.1267},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","distance":0.1773},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","distance":0.205},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","distance":0.2782},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","distance":0.3014}],"related":[{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/update-regarding-vercel-service-disruption-on-october-20-2025","via":"neighbor"},{"site":"vercel-web","path":"/blog/our-million-dollar-hacker-challenge-for-react2shell","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/shai-hulud-2-0-supply-chain-compromise","title":"Shai-Hulud 2.0 Supply Chain Compromise ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","distance":0.1773},{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","distance":0.2094},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","distance":0.2578},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","distance":0.2996},{"site":"vercel-changelog","path":"/changelog/cve-2025-48985-input-validation-bypass-on-ai-sdk","distance":0.3403}],"related":[{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/shai-halud-supply-chain-campaign-expanded-impact-and-vercel-response","via":"neighbor"},{"site":"vercel-web","path":"/blog/reproducing-disclosing-and-fixing-the-libheif-vulnerability-with-hacktron-and-the-maintainers","via":"neighbor"},{"site":"vercel-web","path":"/blog/our-million-dollar-hacker-challenge-for-react2shell","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/s1ngularity-supply-chain-attack-in-nx-packages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/axios-package-compromise-and-remediation-steps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48985-input-validation-bypass-on-ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","title":"Share environment variables across your Team and Projects","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","distance":0.2098},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","distance":0.249},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.2526},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","distance":0.2697},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","distance":0.2718}],"related":[{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/environment-variables","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-can-now-be-filtered","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams","title":"Share Vercel Container Registry repositories across teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public","distance":0.1373},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","distance":0.2759},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","distance":0.2777},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.2798}],"related":[{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public","via":"neighbor"},{"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-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-environment-variables-across-your-team-and-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/share-your-preview-urls-immediately","title":"Share your Preview URLs immediately","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","distance":0.2166},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","distance":0.2316},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2487},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","distance":0.2511}],"related":[{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/sharing-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/preview-deployments-retail-campaign-review","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-urls-optimized-for-multi-tenant-platforms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protected-preview-deployments-available-on-all-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","title":"Support for Sign in with Apple","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.2345},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","distance":0.254},{"site":"vercel-changelog","path":"/changelog/login-with-passkey-is-now-supported","distance":0.3306},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","distance":0.3375},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.3572}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/support-form","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/login-with-passkey-is-now-supported","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","title":"Sign in with ChatGPT is now available on Vercel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","distance":0.1984},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.2573},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","distance":0.2855},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","distance":0.3408},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","distance":0.3478}],"related":[{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-chatbot","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-collaborates-with-openai-for-gpt-5-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","title":"Sign in with Vercel now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/getting-started"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","distance":0.2034},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","distance":0.2345},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","distance":0.2573},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","distance":0.2584},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","distance":0.2594}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/manage-from-dashboard","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-chatgpt-is-now-available-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sign-jwts-from-your-functions-without-managing-private-keys","title":"Sign JWTs from your Functions without managing private keys","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/kms"},{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/kms","distance":0.1528},{"site":"vercel-docs","path":"/docs/kms/concepts/authentication","distance":0.1725},{"site":"vercel-docs","path":"/docs/kms/quickstart","distance":0.1743},{"site":"vercel-docs","path":"/docs/kms/ts-sdk-reference","distance":0.1994},{"site":"vercel-docs","path":"/docs/rest-api/kms/sign-a-token","distance":0.2363}],"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/kms/ts-sdk-reference","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","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sign-up-or-sign-in-with-a-one-time-password-otp","title":"Sign up or sign in with a One-Time Password (OTP)","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","distance":0.2996},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.3191},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","distance":0.3505},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","distance":0.3574},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","distance":0.3774}],"related":[{"site":"vercel-docs","path":"/docs/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/2fa-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-login-flow-and-new-google-sign-in-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-apple-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","title":"Signed URLs are now available for Vercel Blob","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","distance":0.108},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.1771},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","distance":0.2459},{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls","distance":0.2538},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.2764}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-consistent-reads-on-private-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/simplified-file-retrieval-from-vercel-sandbox-environments","title":"Simplified file retrieval from Vercel Sandbox environments","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2498},{"site":"vercel-changelog","path":"/changelog/sandbox-sdk-file-permissions","distance":0.2659},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2671},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","distance":0.2706},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.278}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-sdk-file-permissions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/simplified-onboarding-for-deepsec","title":"Simplified onboarding for deepsec","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-deepsec-find-and-fix-vulnerabilities-in-your-code-base","distance":0.1786},{"site":"vercel-web","path":"/blog/deepsecbench-evaluating-model-performance-in-finding-cybersecurity-vulnerabilities","distance":0.2978},{"site":"vercel-kb","path":"/kb/guide/deepsec-reviews-on-vercel","distance":0.3196},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","distance":0.3655},{"site":"vercel-web","path":"/blog/everything-hackable-will-get-hacked","distance":0.3735}],"related":[{"site":"vercel-web","path":"/blog/introducing-deepsec-find-and-fix-vulnerabilities-in-your-code-base","via":"neighbor"},{"site":"vercel-web","path":"/blog/deepsecbench-evaluating-model-performance-in-finding-cybersecurity-vulnerabilities","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deepsec-reviews-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/everything-hackable-will-get-hacked","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-vibe-coding-securely","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/pr-review","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/security-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-in-private-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-devin-outposts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","title":"Skew Protection is now enabled by default for new projects","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","distance":0.1184},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","distance":0.1539},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","distance":0.1736},{"site":"vercel-web","path":"/blog/version-skew-protection","distance":0.1896},{"site":"vercel-changelog","path":"/changelog/automatic-mitigation-of-crawler-delay-via-skew-protection","distance":0.2396}],"related":[{"site":"vercel-web","path":"/blog/version-skew-protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-mitigation-of-crawler-delay-via-skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","title":"Skew Protection is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks"},{"site":"vercel-web","path":"/blog/version-skew-protection"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","distance":0.1184},{"site":"vercel-web","path":"/blog/version-skew-protection","distance":0.1354},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","distance":0.1784},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","distance":0.1838},{"site":"vercel-docs","path":"/docs/skew-protection","distance":0.1992}],"related":[{"site":"vercel-docs","path":"/docs/skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-mitigation-of-crawler-delay-via-skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","title":"Skew Protection max age now supports the full deployment lifetime","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-retention"},{"site":"vercel-docs","path":"/docs/skew-protection"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","distance":0.1539},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","distance":0.1838},{"site":"vercel-docs","path":"/docs/skew-protection","distance":0.2172},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","distance":0.2249},{"site":"vercel-web","path":"/blog/version-skew-protection","distance":0.2311}],"related":[{"site":"vercel-web","path":"/blog/version-skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-mitigation-of-crawler-delay-via-skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skew-protection-now-supports-prebuilt-deployments","title":"Skew Protection now supports prebuilt deployments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/skew-protection"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","distance":0.1736},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","distance":0.1784},{"site":"vercel-web","path":"/blog/version-skew-protection","distance":0.1791},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","distance":0.2249},{"site":"vercel-docs","path":"/docs/skew-protection","distance":0.2414}],"related":[{"site":"vercel-web","path":"/blog/version-skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skew-protection-max-age-now-supports-the-full-deployment-lifetime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-mitigation-of-crawler-delay-via-skew-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","title":"Skill packs are now available on skills.sh","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.2362},{"site":"vercel-changelog","path":"/changelog/skills-cli-notion-skills","distance":0.2759},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.2768},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.2923},{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","distance":0.3331}],"related":[{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-cli-notion-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-security-audits-now-available-for-skills-sh","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skills-cli-notion-skills","title":"The skills CLI now supports Notion hosted skills","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.2474},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.273},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","distance":0.2759},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.3088},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","distance":0.3315}],"related":[{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","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":"vercel-web","path":"/blog/state-of-agent-skills","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/notion-chat-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","title":"Skills v1.1.1: Interactive discovery, open source release, and agent support","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.1368},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.212},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.2365},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","distance":0.2425},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.2522}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"inbound"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-cli-notion-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skip-sending-request-bodies-to-routing-middleware","title":"Skip sending request bodies to Routing Middleware","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-json"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/routing-middleware","distance":0.3643},{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","distance":0.3694},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","distance":0.3783},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","distance":0.3959},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","distance":0.4027}],"related":[{"site":"vercel-kb","path":"/kb/guide/modify-request-headers","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing-middleware/getting-started","via":"neighbor"},{"site":"nextjs","path":"/docs/pages/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"vercel-web","path":"/blog/version-skew-protection","via":"neighbor"},{"site":"nextjs","path":"/docs/app/api-reference/config/next-config-js/skipProxyUrlNormalize","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/filter-query-parameters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-data-transfer-for-rewrites-between-a-teams-projects-is-now-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/routing-based-on-headers-and-query-string-parameters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-geolocation-information-available-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/skip-unaffected-builds-for-projects-in-bun-monorepos","title":"Skip unaffected builds for projects in Bun monorepos","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","distance":0.2462},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","distance":0.2473},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","distance":0.2535},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","distance":0.3132},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","distance":0.3173}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-monorepo-projects-now-skip-builds-with-unchanged-code-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lockfile-aware-deployment-skipping-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-install-is-now-supported-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","title":"Slack Agent Skill simplifies building Slack agents with coding assistants","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/slack"},{"site":"vercel-kb","path":"/kb/guide/eve-slack-agent-starter"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","distance":0.0948},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","distance":0.2433},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","distance":0.244},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.2667},{"site":"vercel-changelog","path":"/changelog/build-slack-agents-with-vercel-slack-bolt","distance":0.2707}],"related":[{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-stack","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-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-slack-agents-with-vercel-slack-bolt","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sort-providers-by-cost-latency-or-throughput-on-ai-gateway","title":"Sort providers by cost, latency, or throughput on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/provider-filtering-and-ordering"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/claude-fable-5-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/nemotron-3-ultra-now-available-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/opus-4-8-on-ai-gateway"},{"site":"vercel-changelog","path":"/changelog/qwen-3-7-plus-now-available-on-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/live-model-performance-metrics-accessible-via-ai-gateway","distance":0.2905},{"site":"vercel-changelog","path":"/changelog/service-tiers-now-available-on-ai-gateway","distance":0.3113},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers","distance":0.3195},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/openai-chat-completions/advanced","distance":0.3387},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/metrics","distance":0.3394}],"related":[{"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/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-kb","path":"/kb/guide/cost-aware-model-routing-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/live-model-performance-metrics-accessible-via-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/service-tiers-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/provider-level-custom-timeouts-for-faster-fail-over-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/speed-insights-deprecates-first-input-delay-on-november-first","title":"Speed Insights deprecates First Input Delay on November 1st","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/metrics"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","distance":0.2493},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","distance":0.2719},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2941},{"site":"vercel-changelog","path":"/changelog/html-element-attribution-in-speed-insights","distance":0.3012},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-support-for-interaction-to-next-paint-experimental","distance":0.3183}],"related":[{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","via":"neighbor"},{"site":"vercel-web","path":"/blog/demystifying-inp-new-tools-and-actionable-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/html-element-attribution-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-support-for-interaction-to-next-paint-experimental","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","title":"Speed Insights now has a free tier","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/speed-insights"},{"site":"vercel-docs","path":"/docs/speed-insights/quickstart"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","distance":0.1851},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","distance":0.2051},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","distance":0.2093}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","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/package","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/speed-insights-usage-can-now-be-viewed-by-project","title":"Speed Insights usage can now be viewed by Project","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/pricing/manage-and-optimize-usage"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","distance":0.1851},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2035},{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","distance":0.2264},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","distance":0.2454},{"site":"vercel-docs","path":"/docs/speed-insights","distance":0.2537}],"related":[{"site":"vercel-docs","path":"/docs/speed-insights/using-speed-insights","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/managing-usage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/speed-insights/limits-and-pricing","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-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/longer-history-available-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-by-custom-date-ranges-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","title":"Spend Management expands to Enterprise Flexible Commitment plans","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro"},{"site":"vercel-docs","path":"/docs/spend-management"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","distance":0.1724},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","distance":0.1791},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","distance":0.1953},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","distance":0.1998},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","distance":0.21}],"related":[{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-enterprise-flexible-commitment-for-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","title":"Spend Management now available for Pro users","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","distance":0.1479},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","distance":0.1514},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","distance":0.1562},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","distance":0.1715},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","distance":0.1724}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","title":"Spend Management now enabled by default on Pro","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","distance":0.1479},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","distance":0.1791},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.1888},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2142},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","distance":0.2301}],"related":[{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/spend-management-now-pauses-production-deployments-by-default","title":"Spend Management now pauses production deployments by default","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","distance":0.1392},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","distance":0.1562},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","distance":0.1809},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","distance":0.1998},{"site":"vercel-docs","path":"/docs/spend-management","distance":0.2188}],"related":[{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-hard-caps-for-spend-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/pause-your-project","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-is-my-account-deployment-blocked","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-enterprise-flex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-spend-budgets-and-alerts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/split-integration-for-low-latency-experimentation","title":"Split integration for low latency experimentation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","distance":0.2593},{"site":"vercel-web","path":"/blog/edge-config-public-beta","distance":0.2709},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.2975},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","distance":0.3063},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.3189}],"related":[{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-ultra-low-latency-data-at-the-edge","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/split","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hypertune-integration-available-for-low-latency-experimentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-weighted-traffic-splits-for-vercel-flags-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-config-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/split-tgz-is-now-the-default-cli-archive-deployment-behavior","title":"Split-tgz is now the default CLI archive deployment behavior","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/cli-archive-deployments-are-now-up-to-30-faster-with-split-tgz-archive"},{"site":"vercel-docs","path":"/docs/cli/deploy"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cli-archive-deployments-are-now-up-to-30-faster-with-split-tgz-archive","distance":0.0792},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.3416},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.3549},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.3569},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","distance":0.3651}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/repository-checkout-and-git-lfs-downloads-are-now-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/split-web-analytics-data-by-any-dimension","title":"Split Web Analytics data by any dimension","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.3205},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.3299},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","distance":0.3329},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.3341},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","distance":0.3428}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","title":"SSH into running Vercel Sandboxes with the CLI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1346},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","distance":0.1619},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","distance":0.1703},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1705},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","distance":0.1873}],"related":[{"site":"vercel-docs","path":"/docs/cli/sandbox","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/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/stage-and-manually-promote-deployments-to-production","title":"Stage and manually promote deployments to production","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/managing-deployments"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/revert-and-pin-deployments-with-instant-rollback"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","distance":0.1668},{"site":"vercel-changelog","path":"/changelog/new-webhook-for-promotion-events","distance":0.2135},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","distance":0.2165},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","distance":0.2263},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","distance":0.2643}],"related":[{"site":"vercel-docs","path":"/docs/deployments/promoting-a-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/promote-preview-to-production","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/default-production-domain","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-a-staging-environment-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/promote","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-webhook-for-promotion-events","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redeploy-or-promote-cli-deployments-from-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/stale-if-error-cache-control-header-is-now-supported","title":"Stale-if-error cache-control directive now supported for all responses","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.2939},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","distance":0.2952},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","distance":0.3085},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.3085},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","distance":0.3091}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cache-status","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","title":"Static IPs are now available for more secure connectivity","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/route-build-traffic-through-static-ips","distance":0.1607},{"site":"vercel-docs","path":"/docs/networking/static-ips","distance":0.1939},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","distance":0.2316},{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","distance":0.2444},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","distance":0.2858}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/networking/static-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/static-ips/getting-started","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-allowlist-deployment-ip-address","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/route-build-traffic-through-static-ips","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-and-static-ip-builds-start-64-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trusted-ips-is-now-generally-available-for-enterprise-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/statsig-joins-the-vercel-marketplace","title":"Statsig joins the Vercel Marketplace","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.1564},{"site":"vercel-changelog","path":"/changelog/posthog-joins-the-vercel-marketplace","distance":0.2202},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","distance":0.2426},{"site":"vercel-docs","path":"/docs/flags/marketplace","distance":0.246},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2539}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-and-launch-darkly","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/posthog-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/growthbook-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/launchdarkly-is-now-available-on-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/step-5-preview-now-available-on-ai-gateway","title":"Step 5 Preview now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/custom-reporting-ai-gateway"},{"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"},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/routing-rules"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","distance":0.2027},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","distance":0.2091},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","distance":0.2164},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","distance":0.2193},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","distance":0.222}],"related":[{"site":"vercel-web","path":"/blog/vercel-collaborates-with-openai-for-gpt-5-launch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-sonnet-5-5-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-flashx-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-fable-5-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-haiku-5-5-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","title":"Streamdown 1.6 is now available to run faster and ship less code","summary":null,"outbound":[{"site":"streamdown","path":"/docs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.1858},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","distance":0.2049},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","distance":0.2125},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.2366},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","distance":0.239}],"related":[{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"vercel-web","path":"/blog/an-introduction-to-streaming-on-the-web","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-streaming-helps-build-faster-web-applications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","title":"Streamdown 2.2 - animated streaming and better support for custom HTML","summary":null,"outbound":[{"site":"streamdown","path":"/docs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","distance":0.1355},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","distance":0.1539},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","distance":0.172},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.174},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","distance":0.1858}],"related":[{"site":"streamdown","path":"/docs/animation","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/usage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"ai-sdk","path":"/cookbook/next/markdown-chatbot-with-memoization","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","title":"Streamdown 2.3 — Refreshed design and interactive playground","summary":null,"outbound":[{"site":"streamdown","path":"/docs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.172},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","distance":0.2049},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.2537}],"related":[{"site":"streamdown","path":"/docs/code-blocks","via":"neighbor"},{"site":"streamdown","path":"/docs/plugins/mermaid","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/interactivity","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","title":"Streamdown 2.4: More customization, accessibility and custom rendering","summary":null,"outbound":[{"site":"streamdown","path":"/docs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.1355},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","distance":0.1806},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","distance":0.2125},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.2213}],"related":[{"site":"streamdown","path":"/docs/code-blocks","via":"neighbor"},{"site":"streamdown","path":"/docs/styling","via":"neighbor"},{"site":"streamdown","path":"/docs/components","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streamdown-2-5","title":"Streamdown 2.5 is now available","summary":null,"outbound":[{"site":"streamdown","path":"/docs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","distance":0.1539},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","distance":0.1806},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","distance":0.2047},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","distance":0.239}],"related":[{"site":"streamdown","path":"/docs/plugins/math","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"},{"site":"streamdown","path":"/docs/faq","via":"neighbor"},{"site":"streamdown","path":"/docs/typography","via":"neighbor"},{"site":"streamdown","path":"/docs/migrate","via":"neighbor"},{"site":"streamdown","path":"/docs/termination","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-streamdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-1-6-is-now-available-to-run-faster-and-ship-less-code","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streamdown-v2","title":"Streamdown v2: Smaller bundle size and new Remend options","summary":null,"outbound":[{"site":"streamdown","path":"/docs/carets"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/kimi-k2-5-on-ai-gateway","distance":0.2288},{"site":"vercel-changelog","path":"/changelog/trinity-large-preview-is-on-ai-gateway","distance":0.2293},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","distance":0.4205},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","distance":0.4608},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","distance":0.4745}],"related":[{"site":"vercel-changelog","path":"/changelog/kimi-k2-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trinity-large-preview-is-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ai-sdk-3-1-modelfusion-joins-the-team","via":"neighbor"},{"site":"vercel-web","path":"/blog/next6","via":"neighbor"},{"site":"vercel-web","path":"/blog/next5","via":"neighbor"},{"site":"vercel-web","path":"/blog/next3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-elements","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-2-2","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","title":"Streaming is now supported in Vercel Functions for the Python runtime","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","distance":0.0484},{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","distance":0.1378},{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default","distance":0.1534},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","distance":0.1589},{"site":"vercel-docs","path":"/docs/functions/streaming-functions","distance":0.2385}],"related":[{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","via":"neighbor"},{"site":"vercel-web","path":"/blog/streaming-for-serverless-node-js-and-edge-runtimes-with-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default","via":"neighbor"},{"site":"vercel-web","path":"/blog/an-introduction-to-streaming-on-the-web","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-streaming-helps-build-faster-web-applications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-available-for-python-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","title":"Streaming now enabled by default for all Node.js Vercel Functions","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default"},{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default","distance":0.046},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","distance":0.0885},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","distance":0.1378},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","distance":0.1454},{"site":"vercel-web","path":"/blog/streaming-for-serverless-node-js-and-edge-runtimes-with-vercel-functions","distance":0.2127}],"related":[{"site":"vercel-web","path":"/blog/streaming-for-serverless-node-js-and-edge-runtimes-with-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-web","path":"/blog/an-introduction-to-streaming-on-the-web","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-streaming-helps-build-faster-web-applications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/strengthening-vercels-infrastructure-against-http-2-rapid-reset-attacks","title":"Strengthening Vercel's Infrastructure against HTTP/2 Rapid Reset Attacks","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.2657},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","distance":0.2676},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","distance":0.2711},{"site":"vercel-web","path":"/blog/protectd-evolving-vercels-always-on-denial-of-service-mitigations","distance":0.2863},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","distance":0.2869}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/protectd-evolving-vercels-always-on-denial-of-service-mitigations","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","title":"Stripe is now available in beta on the Vercel Marketplace","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/stripe-is-now-generally-available-on-the-marketplace-and-v0","distance":0.1128},{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","distance":0.1361},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","distance":0.1956},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","distance":0.2001},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.22}],"related":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","via":"neighbor"},{"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-changelog","path":"/changelog/stripe-is-now-generally-available-on-the-marketplace-and-v0","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-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-shopify-storefronts-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-generally-available-on-the-marketplace-and-v0","title":"Stripe is now generally available on the Marketplace and v0","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe"}],"inbound":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","distance":0.0948},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","distance":0.1128},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","distance":0.1678},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2264},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","distance":0.23}],"related":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-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/ecommerce","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/getting-started-with-nextjs-typescript-stripe","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-shopify-storefronts-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli","title":"Sub-second artifact deployments are now supported in Vercel CLI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","distance":0.2295},{"site":"vercel-changelog","path":"/changelog/dry-run-deployments-with-vercel-cli","distance":0.2523},{"site":"vercel-changelog","path":"/changelog/vercel-drop","distance":0.2885},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2923},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.2953}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-are-now-up-to-7-seconds-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dry-run-deployments-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-drop","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/subscribe-to-webhook-events-for-vercel-flags","title":"Subscribe to webhook events for Vercel Flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/webhooks/webhooks-api"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2688},{"site":"vercel-changelog","path":"/changelog/new-webhook-events-for-domain-management","distance":0.2735},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2816},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2989},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","distance":0.3048}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","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-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-webhook-events-for-domain-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","title":"Summaries of CVE-2025-59471 and CVE-2025-59472","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","distance":0.1541},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","distance":0.1649},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","distance":0.1674},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.1879},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.1999}],"related":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55173","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nextjs-august-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57752","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","title":"Summary of CVE-2026-23864","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","distance":0.065},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.0859},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","distance":0.1038},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.1367},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","distance":0.2122}],"related":[{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","via":"neighbor"},{"site":"vercel-web","path":"/blog/resources-for-protecting-against-react2shell","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23869","title":"Summary of CVE-2026-23869","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","distance":0.1038},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","distance":0.1171},{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","distance":0.1218},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","distance":0.1544},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","distance":0.1914}],"related":[{"site":"vercel-changelog","path":"/changelog/summary-of-cve-2026-23864","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/react-server-components-security-update-dos-and-source-code-exposure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-55182","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-may-2026-security-release","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sunsetting-the-oauth2-integration-entrypoint","title":"Sunsetting the OAuth2 integration entrypoint","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","distance":0.3229},{"site":"vercel-changelog","path":"/changelog/enhanced-security-with-new-api-scopes-for-integrations","distance":0.3558},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","distance":0.4139},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.4143},{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated","distance":0.4146}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","title":"Sunsetting UI-Hooks and Legacy Webhooks","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure"},{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated"},{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated","distance":0.0964},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","distance":0.204},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","distance":0.282},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.311},{"site":"vercel-changelog","path":"/changelog/sunsetting-the-oauth2-integration-entrypoint","distance":0.3229}],"related":[{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sunsetting-the-oauth2-integration-entrypoint","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-center","title":"Create and view support cases on the Vercel dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-center-on-pro","distance":0.1336},{"site":"vercel-changelog","path":"/changelog/improvements-to-support-center","distance":0.2177},{"site":"vercel-docs","path":"/docs/support-center","distance":0.2467},{"site":"vercel-web","path":"/blog/support-form","distance":0.3345},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.3503}],"related":[{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-center-on-pro","via":"neighbor"},{"site":"vercel-web","path":"/blog/support-form","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-support-center","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-center-on-pro","title":"Support Center is now available for Pro customers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-center","distance":0.1336},{"site":"vercel-changelog","path":"/changelog/improvements-to-support-center","distance":0.1685},{"site":"vercel-docs","path":"/docs/support-center","distance":0.2749},{"site":"vercel-web","path":"/blog/support-form","distance":0.3385},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","distance":0.3676}],"related":[{"site":"vercel-docs","path":"/docs/support-center","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-center","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-support-center","via":"neighbor"},{"site":"vercel-web","path":"/blog/support-form","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-for-elysia","title":"Elysia can now be automatically deployed on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia"},{"site":"vercel-docs","path":"/docs/functions/runtimes/bun"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/elysia","distance":0.148},{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","distance":0.2039},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","distance":0.3139},{"site":"vercel-web","path":"/blog/zero-config","distance":0.3182},{"site":"vercel-changelog","path":"/changelog/you-can-now-deploy-lovable-apps-to-vercel","distance":0.3186}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-elysia-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/behind-the-scenes-of-vercels-infrastructure","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-h3-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ml-models-hugging-face","via":"neighbor"},{"site":"vercel-web","path":"/blog/what-is-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-deploy-lovable-apps-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-multiple-frameworks-in-one-project-with-vercel-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-for-now-json-will-be-removed-on-march-31-2026","title":"Support for now.json will be removed on March 31, 2026","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-ts"},{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","distance":0.3575},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.3698},{"site":"vercel-changelog","path":"/changelog/vercel-ts","distance":0.3698},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","distance":0.3864},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","distance":0.3928}],"related":[{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-16-deprecation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-20-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-18-is-being-deprecated","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-for-react-router-v7","title":"Support for React Router v7","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","distance":0.2422},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","distance":0.2771},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","distance":0.2871},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","distance":0.2923},{"site":"vercel-changelog","path":"/changelog/next-js-14","distance":0.3088}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/frontend/react-router","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/supporting-the-future-of-react","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","title":"Support for Remix v2","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","distance":0.1041},{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","distance":0.137},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","distance":0.1417},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.2349},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","distance":0.2428}],"related":[{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","title":"Support for Remix with Vite","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","distance":0.1417},{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","distance":0.1582},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","distance":0.203},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.2077},{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","distance":0.2103}],"related":[{"site":"vercel-web","path":"/blog/vercel-remix-integration-with-edge-functions-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/remix","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-v2","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/advanced-remix-integration-with-streaming-ssr-and-multi-runtime-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-react-router-v7","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrate-remix-session-storage-with-your-vercel-kv-database","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/support-for-tanstack-start","title":"Support for TanStack Start","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.1389},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-tanstack-start","distance":0.2325},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","distance":0.2607},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","distance":0.2799},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","distance":0.303}],"related":[{"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/tanstack-start-on-vercel-vs-netlify","via":"neighbor"},{"site":"eve","path":"/docs/guides/frontend/tanstack","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-tanstack-start","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-tanstack-ai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-remix-with-vite","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/surfacing-the-environment-of-deployments-and-domains","title":"Surfacing the Environment of Deployments and Domains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","distance":0.2797},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.2826},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.3072},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","distance":0.31},{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.3139}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-october-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-november-2019","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-environment-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-pages-now-display-key-configuration-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-filters-for-project-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recent-preview-deployments-now-displayed-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","title":"SvelteKit now supported in @vercel/flags","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code"}],"inbound":[{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.1823},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","distance":0.1943},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2132},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","distance":0.2195},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","distance":0.2306}],"related":[{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","via":"inbound"},{"site":"flags-sdk","path":"/docs/frameworks/sveltekit","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/flags-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/flags-sdk-3-0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/npm-i-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","title":"SvelteKit projects can now be deployed with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-web","path":"/blog/the-future-of-svelte-an-interview-with-rich-harris"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.1828},{"site":"vercel-web","path":"/blog/using-sveltekit-1-0-on-vercel","distance":0.227},{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","distance":0.246},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.2483},{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","distance":0.2653}],"related":[{"site":"vercel-web","path":"/blog/the-future-of-svelte-an-interview-with-rich-harris","via":"inbound"},{"site":"vercel-web","path":"/blog/using-sveltekit-1-0-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/switch-between-branches-directly-from-deployments","title":"Switch between branches directly from deployments","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","distance":0.2311},{"site":"vercel-changelog","path":"/changelog/command-menu-now-available-in-deployments","distance":0.253},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.2798},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","distance":0.2989},{"site":"vercel-changelog","path":"/changelog/manually-create-deployments-by-commit-or-branch-in-the-dashboard","distance":0.3095}],"related":[{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/see-deployment-status-and-comments-on-active-branches","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/command-menu-now-available-in-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/additional-options-for-sharing-deployments-externally","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manually-create-deployments-by-commit-or-branch-in-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/sync-projects-with-vercel-related-projects","title":"Sync projects with @vercel/related-projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos","distance":0.187},{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","distance":0.3076},{"site":"vercel-docs","path":"/docs/projects","distance":0.3078},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","distance":0.3094},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.3152}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-docs","path":"/docs/projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/monorepo-faq","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/three-improvements-to-vercel-project-creation-vercel-git-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatically-skip-unnecessary-deployments-in-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/system-environment-variables-are-now-available-by-default","title":"System Environment Variables are now available by default","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/every-push-now-receives-a-unique-url"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/environment-variables-ui","distance":0.1592},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","distance":0.2155},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","distance":0.2452},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","distance":0.2554},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.2628}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environments-variables-per-git-branch","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sensitive-environment-variables-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-upload-now-available-for-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/environment-variables-now-use-config-and-secret-types","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-environment-variables-ui","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","title":"Tag-based cache invalidation now available for all responses","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/accounts"},{"site":"vercel-docs","path":"/docs/cli/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/projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","distance":0.1328},{"site":"vercel-changelog","path":"/changelog/add-cache-tags-from-function-responses-regardless-of-framework","distance":0.1865},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","distance":0.2287},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-cache-tags-for-external-origins","distance":0.2406},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","distance":0.2462}],"related":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","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/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-cache-api-nextjs-cache","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/runtime-cache/data-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/add-cache-tags-from-function-responses-regardless-of-framework","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-runtime-cache-api","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/tako-search-is-free-on-ai-gateway-through-september-30th","title":"Tako Search is free on AI Gateway through September 30","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve","distance":0.2741},{"site":"vercel-docs","path":"/docs/ai-gateway/models-and-providers/web-search","distance":0.2804},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","distance":0.2861},{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","distance":0.3017},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","distance":0.3203}],"related":[{"site":"vercel-web","path":"/blog/use-perplexity-web-search-with-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/exa-web-search-free-through-august-31-on-ai-gateway-and-eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-adds-browserbase-search-and-fetch-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/access-perplexity-web-search-on-vercel-ai-gateway-with-any-model","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/parallel-web-search-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","title":"Team-wide provider allowlist on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","distance":0.1465},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","distance":0.2123},{"site":"vercel-changelog","path":"/changelog/zero-data-retention-no-prompt-training-on-ai-gateway","distance":0.2454},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway","distance":0.2639},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","distance":0.2719}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/provider-allowlist","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/model-allowlist","via":"neighbor"},{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","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/provider-options","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-data-retention-no-prompt-training-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/provider-level-custom-timeouts-for-faster-fail-over-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","title":"Temporarily disable Vercel Firewall system DDoS mitigations","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-bypassing-system-mitigations-for-specific-ips","distance":0.179},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","distance":0.2155},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","distance":0.2229},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","distance":0.2278},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","distance":0.2332}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/protectd-evolving-vercels-always-on-denial-of-service-mitigations","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-bypassing-system-mitigations-for-specific-ips","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-firewall-system-bypass-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/the-build-cache-can-now-be-enabled-when-redeploying","title":"The build cache can now be enabled when redeploying","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","distance":0.3198},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-per-branch-caching","distance":0.3213},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","distance":0.3444},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","distance":0.3455},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","distance":0.3483}],"related":[{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-improved-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-with-per-branch-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-deployments-list","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-step-now-15-percent-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/the-directory-listing-feature-will-be-disabled-for-older-projects","title":"The Directory Listing feature will be disabled for older projects","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/listing-the-content-of-directories-can-now-be-toggled"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/listing-the-content-of-directories-can-now-be-toggled","distance":0.1788},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","distance":0.3538},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3561},{"site":"vercel-web","path":"/blog/changelog-august-2020","distance":0.3633},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","distance":0.3642}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-renamed","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-14-and-16-are-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/the-skills-sh-api-is-now-available","title":"The skills.sh API is now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/oidc"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.2646},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.2906},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","distance":0.2984},{"site":"vercel-changelog","path":"/changelog/automated-security-audits-now-available-for-skills-sh","distance":0.3013},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","distance":0.3392}],"related":[{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-security-audits-now-available-for-skills-sh","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","title":"The Vercel Sandbox CLI is now more agent-friendly","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1538},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1781},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","distance":0.1798},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","distance":0.1873},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2087}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","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","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","title":"The Vercel Toolbar is now more compact and dynamic","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.1359},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","distance":0.1772},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.1778},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","distance":0.1908},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","distance":0.2027}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/threshold-billing-is-now-enabled-for-pro-teams","title":"Threshold billing is now enabled for Pro teams","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/billing-role-on-pro","distance":0.3099},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","distance":0.3216},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.3273},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.3293},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","distance":0.3356}],"related":[{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-flat-rate-cdn","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan/billing","via":"neighbor"},{"site":"vercel-web","path":"/blog/simpler-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/billing-role-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-enabled-by-default-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-storage-pricing-expands-to-existing-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/timestamp-attributes-are-now-supported-in-vercel-flags","title":"Timestamp attributes are now supported in Vercel Flags","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2871},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/dashboard/entities","distance":0.2961},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.2972},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2994},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.3044}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","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-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-now-supports-json-values","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/top-paths-in-the-usage-tab-are-now-generally-available","title":"Top Paths in the Usage tab are now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/improved-logs-available-as-public-beta-for-enterprise-teams"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","distance":0.1523},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.2886},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","distance":0.2902},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.2968},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.2986}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-made-the-vercel-dashboard-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-filters-and-metrics-available-on-the-usage-overview","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","title":"Trace any Vercel request from the CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","distance":0.2254},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","distance":0.2575},{"site":"vercel-changelog","path":"/changelog/search-trace-spans-from-the-vercel-cli","distance":0.2641},{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","distance":0.2976},{"site":"vercel-docs","path":"/docs/tracing","distance":0.3051}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/projects/get-a-project-trace-by-request-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-trace-spans-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/traces-now-support-tree-and-waterfall-views","title":"Traces now support Tree and Waterfall views","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/tracing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","distance":0.3098},{"site":"vercel-docs","path":"/docs/tracing","distance":0.3145},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","distance":0.3212},{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","distance":0.3354},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","distance":0.3356}],"related":[{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/always-on-tracing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/always-on-tracing-for-production-and-preview-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/session-tracing-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trace-any-vercel-request-from-the-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/track-build-metrics-and-resource-consumption-with-observability","title":"Track build metrics and resource consumption with Observability ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","distance":0.2296},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","distance":0.232},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.2629},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.2694}],"related":[{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/track-server-side-custom-events-with-vercel-web-analytics","title":"Track server-side custom events with Vercel Web Analytics","summary":null,"outbound":[{"site":"nextjs","path":"/docs/pages/building-your-application/routing/api-routes"},{"site":"vercel-docs","path":"/docs/analytics/custom-events"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","distance":0.2029},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2258},{"site":"vercel-docs","path":"/docs/analytics/custom-events","distance":0.2474},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.3},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","distance":0.3345}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/redacting-sensitive-data","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/quickstart","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-customizing-platform-error-pages","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/transfer-marketplace-resources-between-teams","title":"Transfer Marketplace resources between teams","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2651},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","distance":0.2678},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","distance":0.2994},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","distance":0.3012},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","distance":0.3026}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/transfer-vercel-projects-with-zero-downtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/transferring-an-integration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/neon-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-can-now-be-transferred-without-downtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claimed-deployments-now-include-third-party-resources","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/transform-rules-are-now-available-in-vercel-json","title":"Transform rules are now available in vercel.json","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","distance":0.2648},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","distance":0.2745},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2859},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","distance":0.3061},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","distance":0.339}],"related":[{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/update-rule","via":"neighbor"},{"site":"vercel-docs","path":"/docs/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/ai-gateway/list-rules","via":"neighbor"},{"site":"vercel-docs","path":"/docs/build-output-api/features","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","title":"Trigger GitHub Actions with enriched deployment data from Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","distance":0.1994},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","distance":0.2341},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","distance":0.2544},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.2754},{"site":"vercel-changelog","path":"/changelog/vercel-github-app-updated-permissions","distance":0.2962}],"related":[{"site":"vercel-web","path":"/blog/deploy-safely-on-vercel-without-merge-queues","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-deploy-hooks","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-github-app-updated-permissions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-and-ai-gateway-now-integrated-in-github-actions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/trinity-large-preview-is-on-ai-gateway","title":"Trinity Large Preview is on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/kimi-k2-5-on-ai-gateway","distance":0.0704},{"site":"vercel-changelog","path":"/changelog/streamdown-v2","distance":0.2293},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.3209},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","distance":0.3249},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","distance":0.3257}],"related":[{"site":"vercel-changelog","path":"/changelog/kimi-k2-5-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-3-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streamdown-v2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trinity-mini-model-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/trinity-mini-model-now-available-in-vercel-ai-gateway","title":"Trinity Mini model now available in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.2153},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.218},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","distance":0.2355},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","distance":0.237},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.24}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-models-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/trusted-ips-is-now-generally-available-for-enterprise-customers","title":"Trusted IPs for Deployment Protection is now Generally Available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","distance":0.1952},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.2283},{"site":"vercel-changelog","path":"/changelog/trusted-sources-for-deployment-protection","distance":0.2712},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","distance":0.3102},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","distance":0.3155}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-controls-protected-preview-deployments-passwords","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trusted-sources-for-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-now-supports-protected-rewrites","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/static-ips-are-now-available-for-more-secure-connectivity","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/trusted-sources-for-deployment-protection","title":"Trusted Sources for Deployment Protection","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"site":"vercel-docs","path":"/docs/oidc"},{"site":"vercel-docs","path":"/docs/oidc/reference"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/trusted-ips-is-now-generally-available-for-enterprise-customers","distance":0.2712},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","distance":0.2752},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","distance":0.2828},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","distance":0.284},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","distance":0.2908}],"related":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips","via":"neighbor"},{"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/deployment-protection/methods-to-protect-deployments/vercel-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trusted-ips-is-now-generally-available-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-protection-is-now-enabled-by-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-secure-deployment-protection","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","title":"Faster builds with Turbo build machines","summary":null,"outbound":[{"site":"nextjs","path":"/docs/app/api-reference/turbopack"},{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/monorepos"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","distance":0.1366},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","distance":0.1964},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","distance":0.2093},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","distance":0.2117},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2388}],"related":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","via":"neighbor"},{"site":"vercel-web","path":"/blog/turbopack","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-now-available-with-compute-upgrades-on-paid-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","title":"Turbo build machines by default for new Pro projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","distance":0.1366},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","distance":0.1861},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","distance":0.2188},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.249},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2567}],"related":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-can-now-be-enabled-per-deployment","title":"Turbo build machines can now be enabled per deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/managing-builds"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","distance":0.1861},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","distance":0.1964},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","distance":0.2518},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","distance":0.2603},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","distance":0.2792}],"related":[{"site":"vercel-changelog","path":"/changelog/turbo-build-machines-by-default-for-new-pro-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turbo-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-build-machine-settings-across-all-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/elastic-build-machines-are-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reduced-pricing-for-turbo-build-machines","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turborepo-and-remote-cache-now-support-openid-connect-oidc","title":"Turborepo and Vercel Remote Cache now support OpenID Connect (OIDC)","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching/external-ci-cd","distance":0.2182},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.2571},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","distance":0.2799},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.2826},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.2899}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/circleci","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oidc-federation-now-available-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","title":"Turborepo Open-Source CLI and Remote Caching on Vercel","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","distance":0.1477},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.1726},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","distance":0.2029},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","distance":0.2116},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","distance":0.2145}],"related":[{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"turborepo","path":"/docs/guides/ci-vendors/vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-and-remote-cache-now-support-openid-connect-oidc","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turborepo-run-summary-is-now-available","title":"Turborepo Run Summary is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","distance":0.2662},{"site":"turborepo","path":"/docs/crafting-your-repository/caching","distance":0.2695},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","distance":0.281},{"site":"turborepo","path":"/docs","distance":0.2892},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.2935}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/caching","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/understanding-your-repository","via":"neighbor"},{"site":"turborepo","path":"/docs","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"turborepo","path":"/docs/crafting-your-repository/running-tasks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/turso-cloud-joins-the-vercel-marketplace","title":"Turso Cloud joins the Vercel Marketplace ","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2686},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","distance":0.2748},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","distance":0.2772},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","distance":0.2888},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","distance":0.2936}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/mongodb-atlas-is-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-coming-to-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mongodb-atlas-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upstash-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/typesafe-ai-jev-now-available-on-ai-gateway","title":"TypeSafe AI's Jev now available on AI Gateway","summary":null,"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/logs"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"},{"site":"vercel-kb","path":"/kb/guide/typesafe-jev-and-ai-sdk"}],"inbound":[{"site":"vercel-web","path":"/blog/ai-gateway-jev-model-launch"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-typesafe-clients-and-http-api-for-jev","distance":0.0691},{"site":"vercel-web","path":"/blog/ai-gateway-jev-model-launch","distance":0.1191},{"site":"vercel-web","path":"/blog/jev-for-python-engineers","distance":0.2049},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","distance":0.2099},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","distance":0.2206}],"related":[{"site":"vercel-web","path":"/blog/ai-gateway-jev-model-launch","via":"neighbor"},{"site":"vercel-web","path":"/blog/jev-for-python-engineers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/decision","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-typesafe-clients-and-http-api-for-jev","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/auto-approve-tool-calls-eve-jev","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/decisions","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-ai-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/ai-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microsoft-decision-1-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/ui-hooks-for-integrations-will-be-deprecated","title":"UI Hooks for Integrations will be deprecated","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure"},{"site":"vercel-docs","path":"/docs/integrations"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","distance":0.0964},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","distance":0.2426},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","distance":0.2857},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","distance":0.309},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","distance":0.3515}],"related":[{"site":"vercel-changelog","path":"/changelog/sunsetting-ui-hooks-and-legacy-webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/create-integration/upgrade-integration","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrations-can-now-be-managed-more-efficiently","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-deploy-hooks","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reworked-integrations-and-integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-slack-integration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/unified-documentation-search-across-vercel-next-js-and-turborepo","title":"Unified documentation search across Vercel, Next.js, and Turborepo","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.2339},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","distance":0.2922},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","distance":0.305},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","distance":0.3168},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.3264}],"related":[{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-vercel-comments-to-improve-the-next-js-13-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dashboard-universal-search","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-domains-on-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","title":"Unified security actions dashboard","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/automated-react2shell-vulnerability-patching-is-now-available"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","distance":0.1715},{"site":"vercel-changelog","path":"/changelog/automated-react2shell-vulnerability-patching-is-now-available","distance":0.2488},{"site":"vercel-docs","path":"/docs/security/security-dashboard","distance":0.2552},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-in-private-beta","distance":0.2642},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.2847}],"related":[{"site":"vercel-docs","path":"/docs/security/security-dashboard","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-in-private-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preview-firewall-status-and-web-analytics-from-project-overview","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/unlimited-custom-domains-for-all-pro-teams","title":"Unlimited custom domains for all Pro teams","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/platforms-starter-kit"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams","distance":0.2444},{"site":"vercel-web","path":"/blog/platforms-starter-kit","distance":0.2829},{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","distance":0.2846},{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","distance":0.2946},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","distance":0.3064}],"related":[{"site":"vercel-web","path":"/blog/platforms-starter-kit","via":"inbound"},{"site":"vercel-docs","path":"/docs/domains/free-domain-with-pro","via":"neighbor"},{"site":"vercel-docs","path":"/docs/platforms/multi-tenant-platforms/limits","via":"neighbor"},{"site":"vercel-web","path":"/blog/wildcard-domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/branch-domains","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-domain-for-one-year-now-for-all-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-domain-now-included-with-new-pro-subscriptions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/app-and-dev-domains-included-with-free-domain-for-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-teams-can-now-run-up-to-500-concurrent-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/unlimited-vercel-blob-stores-on-every-plan","title":"Unlimited Vercel Blob stores on every plan","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.1675},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","distance":0.1913},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","distance":0.1961},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.2176},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","distance":0.2276}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","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-docs","path":"/docs/vercel-blob/public-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob-nuxt","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-blob-store-limit-for-hobby-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","title":"Up to 80% pricing reduction for Web Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.1954},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","distance":0.2058},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2814},{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","distance":0.2823},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","distance":0.2829}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-and-optimize-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/upcoming-change-in-lets-encrypt-chain-of-trust","title":"Upcoming change in Let's Encrypt Chain of Trust","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections","distance":0.3195},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","distance":0.3262},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","distance":0.3392},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","distance":0.3518},{"site":"vercel-web","path":"/blog/changelog-june-2020","distance":0.3636}],"related":[{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn-security/encryption","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-ssl","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/encrypted-client-hello-now-supported-on-vercel-cdn","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","title":"Update Project Settings from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/project"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/dry-run-deployments-with-vercel-cli","distance":0.2413},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2649},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2836},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","distance":0.2838},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.2841}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/project-linking","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dry-run-deployments-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","title":"Updated default retention policy for canceled deployments","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","distance":0.1349},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","distance":0.1521},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","distance":0.2396},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.2478}],"related":[{"site":"vercel-docs","path":"/docs/deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-web","path":"/blog/canceling-ongoing-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-retain-fewer-deployments-to-free-up-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updated-defaults-for-deployment-retention","title":"Updated defaults for deployment retention","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","distance":0.1349},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","distance":0.1843},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","distance":0.1886},{"site":"vercel-docs","path":"/docs/deployment-retention","distance":0.1976},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","distance":0.2066}],"related":[{"site":"vercel-docs","path":"/docs/deployment-retention","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-an-individual-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updated-default-retention-policy-for-canceled-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-storage/optimize","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configure-retention-periods-for-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-pro-teams-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hobby-projects-now-default-to-30-day-deployment-retention","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployment-retention-policies-now-preserve-active-branch-deployments","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updated-logging-limits-for-vercel-functions","title":"Updated logging limits for Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","distance":0.2454},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","distance":0.2788},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","distance":0.2793},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.2935},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","distance":0.2941}],"related":[{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"inbound"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-visibility-for-function-durations-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updated-permissions-for-developer-role","title":"Updated permissions for Developer role","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","distance":0.2787},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","distance":0.2831},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","distance":0.2883},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","distance":0.2892},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","distance":0.3067}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/increased-security-with-the-developer-and-billing-roles","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/developer-role-now-available-for-pro-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-project-access-controls-for-enterprise-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/role-based-access-control-now-generally-available-on-enterprise-plans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-role-based-access-control-rbac-for-enterprise-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updates-to-legal-terms-june-2026","title":"Updates to Legal Terms","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/pricing/understanding-my-invoice"},{"site":"vercel-web","path":"/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updates-to-terms-of-service-march-2026","distance":0.198},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","distance":0.2815},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","distance":0.2915},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2928},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","distance":0.2959}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-terms-of-service-march-2026","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updates-to-terms-of-service-march-2026","title":"Updates to Terms of Service","summary":null,"outbound":[],"inbound":[{"site":"v0","path":"/docs/faqs"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/updates-to-legal-terms-june-2026","distance":0.198},{"site":"v0","path":"/docs/faqs","distance":0.2582},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2808},{"site":"vercel-web","path":"/blog/becoming-an-ai-engineering-company","distance":0.2876},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","distance":0.2882}],"related":[{"site":"v0","path":"/docs/faqs","via":"inbound"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-web","path":"/blog/becoming-an-ai-engineering-company","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/series-f","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/updates-to-legal-terms-june-2026","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/updates-to-vercel-toolbar-shortcuts","title":"Updates to Vercel Toolbar shortcuts","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-toolbar"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","distance":0.2031},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","distance":0.2035},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","distance":0.2462},{"site":"vercel-changelog","path":"/changelog/reposition-the-vercel-toolbar","distance":0.2902},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","distance":0.2988}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/reposition-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/upgraded-pci-dss-version-3-2-1-to-4-0","title":"Upgraded PCI DSS version 3.2.1 to 4.0","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/pci-compliance-for-ecommerce-teams"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","distance":0.394},{"site":"vercel-web","path":"/blog/pci-compliance-for-ecommerce-teams","distance":0.4013},{"site":"vercel-changelog","path":"/changelog/compliance-documents-are-now-available-in-team-settings","distance":0.4037},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","distance":0.4348},{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","distance":0.4386}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-conduct-pci-scans-on-vercel-guide","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/compliance-documents-are-now-available-in-team-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-certified-under-the-eu-us-data-privacy-framework-dpf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-achieves-tisax-al2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/strengthening-vercels-infrastructure-against-http-2-rapid-reset-attacks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/upgrading-ruby-v2-7-to-v3-2","title":"Upgrading Ruby v2.7 to v3.2","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","distance":0.2371},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","distance":0.3778},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","distance":0.3897},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","distance":0.3917},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","distance":0.3924}],"related":[{"site":"vercel-changelog","path":"/changelog/python-3-12-and-ruby-3-3-are-now-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/ruby","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-22-lts-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/legacy-build-image-is-being-deprecated","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-3-9-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/upstash-joins-the-vercel-marketplace","title":"Upstash joins the Vercel Marketplace","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2045},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","distance":0.2191},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2451},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","distance":0.2793},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","distance":0.2841}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/usage-notification-settings-is-now-generally-available","title":"Usage notification settings is now generally available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/automatic-recursion-protection-for-vercel-serverless-functions"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","distance":0.3418},{"site":"vercel-docs","path":"/docs/notifications","distance":0.3447},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","distance":0.3488},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.3495},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.3576}],"related":[{"site":"vercel-docs","path":"/docs/notifications","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-spend-management-realtime-usage-alerts-sms-notifications","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-invoice-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/spend-management-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-web-notifications-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/threshold-billing-is-now-enabled-for-pro-teams","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/usage-overview-project-grouping","title":"Usage Overview project grouping","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","distance":0.297},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","distance":0.3071},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","distance":0.3186},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","distance":0.319},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","distance":0.3217}],"related":[{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","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-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-for-personal-accounts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-observability-on-the-usage-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-usage-dashboard-for-enterprise-users","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-acp-compatible-harnesses-with-the-ai-sdk-harness-layer","title":"Use ACP-compatible harnesses with the AI SDK harness layer","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/cursor-ai-sdk-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/fx-ai-sdk-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/program-agent-harnesses-with-ai-sdk","distance":0.1619},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","distance":0.1857},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","distance":0.2161},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","distance":0.2212},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","distance":0.2268}],"related":[{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/harness-adapters","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-harnesses/overview","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/github-copilot","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-harnesses/codex","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-copilot-ai-sdk-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepagents-and-opencode-harness-adapters","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-harness-native-subscription-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-harness-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cline-harness-adapter","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-ai-gateway-with-clawdbot","title":"Use AI Gateway with Clawdbot","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","distance":0.2703},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","distance":0.3163},{"site":"vercel-changelog","path":"/changelog/ai-gateway-support-for-claude-code","distance":0.3172},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","distance":0.3215},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","distance":0.3216}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openclaw","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/deepagents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/xcode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-4-1-opus-is-now-supported-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-support-for-claude-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-opus-4-5-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-gpt-5-4-mini-and-nano-on-ai-gateway","title":"Use GPT 5.4 Mini and Nano on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","distance":0.1016},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","distance":0.15},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","distance":0.1558},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","distance":0.1601},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","distance":0.1757}],"related":[{"site":"vercel-changelog","path":"/changelog/gpt-5-gpt-5-mini-and-gpt-5-nano-are-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5.5-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-4-is-now-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-models-now-available-in-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-minimax-m2-5-on-ai-gateway","title":"Use MiniMax M2.5 on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","distance":0.0909},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","distance":0.0966},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","distance":0.1171},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","distance":0.1536},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","distance":0.2076}],"related":[{"site":"vercel-changelog","path":"/changelog/minimax-m2.7-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-1-now-live-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m2-now-available-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-m3-and-m2-7-are-free-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-native-curl-syntax-with-vercel-cli","title":"Use native curl syntax with Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/curl"},{"site":"vercel-docs","path":"/docs/deployment-protection"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/cli/curl","distance":0.2681},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.2958},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","distance":0.3072},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-api-cli-command","distance":0.3089},{"site":"vercel-docs","path":"/docs/cli/api","distance":0.3101}],"related":[{"site":"vercel-docs","path":"/docs/cli/api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-api-cli-command","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-vercel-cli-login-flow","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-skills-in-your-ai-sdk-agents-via-bash-tool","title":"Use skills in your AI SDK agents via bash-tool","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/introducing-bash-tool-for-filesystem-based-context-retrieval"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-bash-tool-for-filesystem-based-context-retrieval","distance":0.2097},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","distance":0.2668},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","distance":0.273},{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","distance":0.2927},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.2931}],"related":[{"site":"ai-sdk","path":"/cookbook/guides/agent-skills","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/skills","via":"neighbor"},{"site":"vercel-web","path":"/blog/skills-night-69000-ways-agents-are-getting-smarter","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skill-packs-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/slack-agent-skill-simplifies-building-slack-agents-with-coding-assistants","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-now-includes-ai-sdk-tools","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","title":"Use the Vercel Toolbar in Production with the Chrome Extension or the toolbar menu","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2024"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","distance":0.149},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.1584},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.1737},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.1833},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","distance":0.1895}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2024","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-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/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/firefox-extension-for-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","title":"Use and manage Vercel Sandbox directly from the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1341},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","distance":0.1703},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1771},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","distance":0.1798},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","distance":0.1953}],"related":[{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/run-commands-in-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/utm-parameter-support-in-web-analytics","title":"UTM parameter support in Web Analytics","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.3013},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.3093},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.3105},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.3195},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","distance":0.3234}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/hostname-support-in-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/device-type-support-and-improved-breakdowns-in-web-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","title":"v0 adds one-click integrations for email, auth, search, and databases","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","distance":0.217},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2246},{"site":"vercel-web","path":"/blog/v0-app","distance":0.2387},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","distance":0.2431},{"site":"v0","path":"/docs/quickstart","distance":0.2579}],"related":[{"site":"vercel-web","path":"/blog/v0-app","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","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":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/transforming-how-you-work-with-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-to-prompt-v0","via":"neighbor"},{"site":"v0","path":"/docs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/v0-api-now-supports-custom-mcp-servers","title":"v0 API now supports custom MCP servers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2598},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","distance":0.2671},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","distance":0.2863},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","distance":0.2901},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","distance":0.2924}],"related":[{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/mcp-server","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/guides/oauth-mcp-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"v0","path":"/docs/MCP","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-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/v0-now-includes-diff-view-to-review-code-changes","title":"v0 now includes diff view to review code changes","summary":null,"outbound":[{"site":"v0","path":"/docs/code-editing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/v0-app","distance":0.3792},{"site":"vercel-changelog","path":"/changelog/faster-time-to-start-for-v0-builds","distance":0.3804},{"site":"vercel-changelog","path":"/changelog/v0-themes","distance":0.3836},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","distance":0.3866},{"site":"vercel-web","path":"/blog/transforming-how-you-work-with-v0","distance":0.3904}],"related":[{"site":"vercel-web","path":"/blog/v0-app","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/transforming-how-you-work-with-v0","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-replit","via":"neighbor"},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-figma-make","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-smarter-workflows-with-notion-and-v0","via":"neighbor"},{"site":"v0","path":"/docs","via":"neighbor"},{"site":"v0","path":"/docs/compare/v0-vs-base44","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-time-to-start-for-v0-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-themes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","title":"v0 now reads npm credentials from shared environment variables","summary":null,"outbound":[{"site":"v0","path":"/docs/private-dependencies"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"v0","path":"/docs/private-dependencies","distance":0.1882},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-installs-private-packages-from-npm-and-custom-registries","distance":0.2482},{"site":"vercel-docs","path":"/docs/agent/private-dependencies","distance":0.3016},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","distance":0.3092},{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster","distance":0.3127}],"related":[{"site":"vercel-docs","path":"/docs/agent/private-dependencies","via":"neighbor"},{"site":"v0","path":"/docs/api/v2/guides/environment-variables","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-plans-for-teams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-smarter-workflows-with-notion-and-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-installs-private-packages-from-npm-and-custom-registries","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/package-installation-for-v0-builds-is-now-70-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/v0-platform-api-now-in-beta","title":"v0 Platform API now in beta","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/build-your-own-ai-app-builder-with-the-v0-platform-api"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/build-your-own-ai-app-builder-with-the-v0-platform-api","distance":0.1746},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","distance":0.2782},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","distance":0.281},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","distance":0.2981},{"site":"vercel-web","path":"/blog/v0-app","distance":0.3014}],"related":[{"site":"vercel-web","path":"/blog/build-your-own-ai-app-builder-with-the-v0-platform-api","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0-api","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/packages/v0-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/v0-app","via":"neighbor"},{"site":"vercel-web","path":"/blog/announcing-v0-generative-ui","via":"neighbor"},{"site":"v0","path":"/docs/api/v1","via":"neighbor"},{"site":"v0","path":"/docs","via":"neighbor"},{"site":"v0","path":"/docs/faqs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/v0-themes","title":"v0 Themes","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/announcing-v0-generative-ui","distance":0.3108},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","distance":0.3289},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","distance":0.3557},{"site":"vercel-web","path":"/blog/ai-powered-prototyping-with-design-systems","distance":0.3655},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","distance":0.3666}],"related":[{"site":"vercel-web","path":"/blog/announcing-v0-generative-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/working-with-figma-and-custom-design-systems-in-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-new-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-powered-prototyping-with-design-systems","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/examples/classic-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/maximizing-outputs-with-v0-from-ui-generation-to-code-creation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-now-includes-diff-view-to-review-code-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-platform-api-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","title":"Vercel CDN no longer caches responses with Vary: Cookie","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-status"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/serve-personalized-content-faster-with-vary-support","distance":0.2475},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.2679},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.3027},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.3087},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-cache-reasons","distance":0.3117}],"related":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/headers/response-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-cache-control-headers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/why-running-another-cdn-on-top-of-vercel-is-not-recommended","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/serve-personalized-content-faster-with-vary-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-cache-reasons","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","title":"Push images to Vercel Container Registry from GitHub Actions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/container-registry/github-actions"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/container-registry/github-actions","distance":0.1062},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","distance":0.1831},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.2174},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","distance":0.2187},{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","distance":0.2204}],"related":[{"site":"vercel-kb","path":"/kb/guide/migrate-ghcr-to-vcr","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-docs","path":"/docs/container-registry/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/vcr","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/docker","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","title":"Veo video models on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"}],"inbound":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.168},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.1969},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","distance":0.2257},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","distance":0.2313},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","distance":0.2352}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"inbound"},{"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-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-1-5-lite-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-achieves-tisax-al2","title":"Vercel achieves TISAX AL2","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","distance":0.0511},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","distance":0.2677},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","distance":0.2912},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.3422},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-certified-under-the-eu-us-data-privacy-framework-dpf","distance":0.3547}],"related":[{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/gartner-mq-visionary-2025","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/is-vercel-soc-2-compliant","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-named-a-visionary-in-2024-gartner-magic-quadrant-for-cloud","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-launches-partner-certification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-certified-under-the-eu-us-data-privacy-framework-dpf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/compliance-documents-are-now-available-in-team-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","title":"Vercel Agent code reviews now follow your code guidelines","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/pr-review"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","distance":0.1986},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","distance":0.2052},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","distance":0.2565},{"site":"vercel-changelog","path":"/changelog/web-interface-guidelines-now-available-as-an-agent-command","distance":0.2628},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","distance":0.2679}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-agent-code-review","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-interface-guidelines-now-available-as-an-agent-command","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-has-updated-pricing","title":"Vercel Agent has updated pricing","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent/pricing","distance":0.1812},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","distance":0.2553},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.2724},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.275},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.2777}],"related":[{"site":"vercel-docs","path":"/docs/agent/pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/updated-v0-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","title":"Vercel Agent can now install Web Analytics and Speed insights for you","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent/installation","distance":0.1681},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.2274},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.2436},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2488},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","distance":0.2508}],"related":[{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","title":"Vercel Agent investigations now available in Slack","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/alerts"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","distance":0.1319},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","distance":0.1639},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","distance":0.1724},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","distance":0.21},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","distance":0.2271}],"related":[{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/anomaly-alerts-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","title":"Vercel Agent Investigations now in Public Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/alerts"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","distance":0.1048},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","distance":0.1115},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","distance":0.1639},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","distance":0.1639},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.18}],"related":[{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-included-in-observability-plus","title":"Vercel Agent investigations now included in Observability Plus","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/investigation"},{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","distance":0.1115},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","distance":0.1319},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","distance":0.1465},{"site":"vercel-docs","path":"/docs/agent/investigation","distance":0.1689},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2281}],"related":[{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","title":"Vercel Agent is now available in Slack code channels","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","distance":0.1005},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","distance":0.1619},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.1996},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","distance":0.2043},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","distance":0.2072}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","title":"Vercel Agent now in Limited Beta","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"},{"site":"vercel-web","path":"/blog/vercel-ship-2026-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","distance":0.1804},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","distance":0.1918},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","distance":0.1928},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.1928}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-ship-2026-recap","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent-can-now-run-ai-investigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-code-reviews-by-vercel-agent-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-installs-private-packages-from-npm-and-custom-registries","title":"Vercel Agent now installs private packages from npm and custom registries","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/private-dependencies"},{"site":"vercel-docs","path":"/docs/environment-variables/shared-environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/agent/private-dependencies","distance":0.1862},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","distance":0.2482},{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","distance":0.2735},{"site":"v0","path":"/docs/private-dependencies","distance":0.2755},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.2893}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-private-dependencies-with-vercel","via":"neighbor"},{"site":"v0","path":"/docs/private-dependencies","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent/installation","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-now-reads-npm-credentials-from-shared-environment-variables","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-and-deploy-eve-agents-from-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-ai-gateway-and-vercel-sandbox-now-available-on-hermes-agent","title":"Vercel AI Gateway and Vercel Sandbox now available on Hermes Agent","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/authentication"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","distance":0.1962},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/hermes","distance":0.2051},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","distance":0.2512},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.2536},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","distance":0.267}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/hermes","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/run-herdr-coding-agents-isolated-vercel-sandboxes","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/building-an-agent-with-openai-agents-sdk-and-vercel-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/running-ai-generated-code-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-every-agent-in-herdr-its-own-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/set-up-coding-agents-in-one-command-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-claude-managed-agents-with-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-ai-gateway-plugin-for-wordpress","title":"Vercel AI Gateway plugin for WordPress","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/wordpress"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/wordpress","distance":0.1121},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","distance":0.3107},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.3109},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.3115},{"site":"vercel-web","path":"/blog/ai-gateway","distance":0.3118}],"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-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","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-changelog","path":"/changelog/ai-gateway-and-one-click-deploys-now-available-on-trae","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","title":"Vercel Analytics API is now available for all frameworks","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","distance":0.163},{"site":"vercel-web","path":"/blog/gatsby-analytics","distance":0.1687},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","distance":0.1724},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.1851},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","distance":0.2426}],"related":[{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/gatsby-analytics","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-support-for-interaction-to-next-paint-experimental","title":"Vercel Analytics support for Interaction to Next Paint (Experimental)","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/core-web-vitals"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/interaction-timing-tool","distance":0.1618},{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","distance":0.2147},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","distance":0.2193},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","distance":0.2351},{"site":"vercel-web","path":"/blog/demystifying-inp-new-tools-and-actionable-insights","distance":0.2885}],"related":[{"site":"vercel-web","path":"/blog/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/first-input-delay-vs-interaction-to-next-paint","via":"neighbor"},{"site":"vercel-web","path":"/blog/improving-interaction-to-next-paint-with-react-18-and-suspense","via":"neighbor"},{"site":"vercel-web","path":"/blog/demystifying-inp-new-tools-and-actionable-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/interaction-timing-tool","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-analytics-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/interaction-timing-tool","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-deprecates-first-input-delay-on-november-first","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/real-time-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/html-element-attribution-in-speed-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-analytics-available-on-vercel-analytics","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob","title":"Introducing Vercel Blob","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","distance":0.1363},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.1436},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.1527},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","distance":0.1824},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.1854}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","title":"Vercel Blob CLI is now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.1716},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","distance":0.1907},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","distance":0.2002},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","distance":0.2106}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/manage-blob-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","title":"Vercel Blob insights now available in Observability","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.1878},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.191},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","distance":0.2106}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","title":"Vercel Blob is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.0912},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","distance":0.1442},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.1527},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","distance":0.1542},{"site":"vercel-changelog","path":"/changelog/unlimited-vercel-blob-stores-on-every-plan","distance":0.1675}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-blob/usage-and-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unlimited-vercel-blob-stores-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","title":"Vercel Blob is now in public beta for Hobby and Pro customers","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.1363},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.1442},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","distance":0.1962},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.2107}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-blob","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-available-in-all-vercel-regions","title":"Vercel Blob now available in all Vercel Regions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/blob"},{"site":"vercel-docs","path":"/docs/functions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.1542},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","distance":0.1786},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","distance":0.2064},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.2111},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.2116}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-in-public-beta-for-hobby-and-pro-customers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-consistent-reads-on-private-storage","title":"Vercel Blob now supports consistent reads on private storage","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/manage-cdn-usage"},{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.1968},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","distance":0.212},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","distance":0.2187},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.2303},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","distance":0.2477}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-file-upload-progress","title":"Vercel Blob now supports file upload progress","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","distance":0.202},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.2308},{"site":"vercel-changelog","path":"/changelog/5tb-file-transfers-with-vercel-blob-multipart-uploads","distance":0.2384},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.249},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","distance":0.2545}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"inbound"},{"site":"vercel-docs","path":"/docs/vercel-blob/examples","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/5tb-file-transfers-with-vercel-blob-multipart-uploads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","title":"Vercel Blob now supports OIDC authentication","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob"},{"site":"vercel-docs","path":"/docs/vercel-blob/using-blob-sdk"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.1714},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","distance":0.2278},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","distance":0.2376},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.2435},{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","distance":0.2459}],"related":[{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-netlify","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","title":"Vercel BotID is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"},{"site":"vercel-web","path":"/blog/introducing-botid"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","distance":0.0693},{"site":"vercel-web","path":"/blog/introducing-botid","distance":0.0991},{"site":"vercel-changelog","path":"/changelog/botid-now-available-for-all-frameworks","distance":0.112},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","distance":0.1808},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","distance":0.1837}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-waf-vs-cloudflare-waf","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","via":"neighbor"},{"site":"vercel-web","path":"/blog/botid-deep-analysis-catches-a-sophisticated-bot-network-in-real-time","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-botid-vs-cloudflare-turnstile","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","title":"Vercel BotID now leverages Vercel's verified bot directory","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/botid"},{"site":"vercel-docs","path":"/docs/botid/verified-bots"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid"},{"site":"vercel-web","path":"/blog/introducing-botid"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.0693},{"site":"vercel-web","path":"/blog/introducing-botid","distance":0.1415},{"site":"vercel-changelog","path":"/changelog/botid-now-available-for-all-frameworks","distance":0.1473},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","distance":0.1624},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","distance":0.1905}],"related":[{"site":"vercel-kb","path":"/kb/guide/deploying-and-testing-botid","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/botid-deep-analysis-catches-a-sophisticated-bot-network-in-real-time","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-changelog","path":"/changelog/botid-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/botid-deep-analysis-model-improved-for-fake-hardware-detection","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-botid-deep-analysis","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","title":"Vercel Connect now supports CLI setup for 100+ connectors","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-docs","path":"/docs/cli/connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.0921},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1586},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1621},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","distance":0.1884},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","distance":0.1889}],"related":[{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-commands-now-scope-to-the-local-directory","title":"Vercel CLI commands now scoped to local directory","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","distance":0.2358},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.2555},{"site":"vercel-changelog","path":"/changelog/preserve-local-environment-variables-when-linking-with-the-vercel-cli","distance":0.2778},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","distance":0.2974},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.3078}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-predictable-project-linking-in-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/preserve-local-environment-variables-when-linking-with-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/update-project-settings-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","title":"Vercel CLI expands commands for DNS, domains, and projects","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","distance":0.1532},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.2382},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.2443},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2484},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2509}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","title":"Vercel CLI for Marketplace integrations optimized for agents","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"}],"inbound":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe"}],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.1526},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","distance":0.1902},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","distance":0.1908},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-agent-skills","distance":0.2269},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2329}],"related":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","via":"inbound"},{"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/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-agent-skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-signing-blob-urls","title":"Vercel CLI now supports signing blob URLs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob/vercel-signed-urls"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","distance":0.108},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","distance":0.1892},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","distance":0.2126},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","distance":0.2376},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.2856}],"related":[{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","title":"Vercel CLI now supports verifying DNS configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/domains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.1532},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2518},{"site":"vercel-docs","path":"/docs/domains/set-up-custom-domain","distance":0.2549},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","distance":0.2754},{"site":"vercel-kb","path":"/kb/guide/how-to-manage-vercel-dns-records","distance":0.2763}],"related":[{"site":"vercel-docs","path":"/docs/domains/set-up-custom-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-docs","path":"/docs/domains/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/dns","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains/add-a-domain","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","title":"Vercel CLI v24 is now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","distance":0.1445},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.1853},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.2295},{"site":"vercel-changelog","path":"/changelog/november-2022","distance":0.2309},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.2397}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/november-2022","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","title":"Vercel CLI v28 is now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/august-2022-papercuts"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","distance":0.1445},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","distance":0.17},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.176},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.1792},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.1903}],"related":[{"site":"vercel-web","path":"/blog/changelog-august-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","title":"Vercel Connect adds observability support","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.1643},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1645},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1712},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.1921},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","distance":0.1994}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","title":"Vercel Connect is now generally available","summary":null,"outbound":[{"site":"chat-sdk","path":"/docs/vercel-connect"},{"site":"v0","path":"/docs/vercel-connect"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services"},{"site":"vercel-changelog","path":"/changelog/imessage-support-for-eve-agents"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","distance":0.0397},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.0716},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","distance":0.0864},{"site":"vercel-docs","path":"/docs/connect","distance":0.0983},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.1438}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/concepts/authentication","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/imessage-support-for-eve-agents","via":"inbound"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","title":"Vercel Connect now supports Microsoft Teams","summary":null,"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/concepts/triggers"},{"site":"vercel-docs","path":"/docs/connect/frameworks/chat-sdk"},{"site":"vercel-docs","path":"/docs/connect/frameworks/eve"},{"site":"vercel-docs","path":"/docs/connect/ts-sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","distance":0.1137},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.2134},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.2188},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","distance":0.2282},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","distance":0.2417}],"related":[{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"},{"site":"eve","path":"/docs/channels/teams","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","title":"Vercel Connect now supports Custom Environments","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/connect/quickstart"},{"site":"vercel-docs","path":"/docs/deployments/environments"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","distance":0.1938},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.2203},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","distance":0.2238},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.2265},{"site":"vercel-docs","path":"/docs/deployments/environments","distance":0.229}],"related":[{"site":"vercel-docs","path":"/docs/connect/concepts/project-links","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-support-for-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-linq","title":"Vercel Connect now supports Linq","summary":null,"outbound":[{"site":"eve","path":"/docs/channels/linq"},{"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/ts-sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"eve","path":"/docs/channels/linq","distance":0.1985},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","distance":0.2489},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.2509},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.2658},{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","distance":0.2693}],"related":[{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","title":"Vercel Connect adds 100+ preset connectors","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"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-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-web","path":"/blog/introducing-vercel-connect"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.0921},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1438},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1541},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","distance":0.1643},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","distance":0.1713}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"inbound"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","title":"Vercel Connect: Secure access to external services for your agents","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"eve","path":"/docs/tutorial/connect-a-warehouse"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.0716},{"site":"vercel-web","path":"/blog/introducing-vercel-connect","distance":0.0753},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents","distance":0.0826},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","distance":0.1351},{"site":"vercel-docs","path":"/docs/connect","distance":0.1384}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"eve","path":"/docs/tutorial/connect-a-warehouse","via":"inbound"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"chat-sdk","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-service-submissions","title":"Vercel Connect now accepts service submissions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/connect/providers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.2219},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.2288},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","distance":0.262},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.2635},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","distance":0.2801}],"related":[{"site":"vercel-docs","path":"/docs/connect/concepts/connectors","via":"neighbor"},{"site":"v0","path":"/docs/vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-v0-apps-to-slack-google-and-100-other-services","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-support-in-github-tools","title":"Vercel Connect support in GitHub Tools","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.1713},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1776},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1789},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.1889},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","distance":0.1925}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nuxt-and-vercel-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/github-agent-eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/github-tools-eve-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","title":"Vercel Connect now supports Microsoft","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga"},{"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/ts-sdk-reference"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"},{"site":"vercel-web","path":"/blog/the-end-of-credential-sprawl-for-agents"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","distance":0.1137},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.1775},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","distance":0.1875},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","distance":0.1898},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","distance":0.1958}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-connect","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/azure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-microsoft-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-100-services","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-preset-connectors","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-adds-observability-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-connect-tanstack-ai","title":"Vercel Connect now supports TanStack AI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/connect/frameworks"},{"site":"vercel-docs","path":"/docs/connect/frameworks/tanstack-ai"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/connect/frameworks/tanstack-ai","distance":0.1853},{"site":"vercel-docs","path":"/docs/mcp/integrations/tanstack-ai","distance":0.2019},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/tanstack-ai","distance":0.2409},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","distance":0.2621},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","distance":0.2767}],"related":[{"site":"vercel-docs","path":"/docs/mcp/integrations/tanstack-ai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/tanstack-ai","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/connect/frameworks/ai-sdk-and-mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/tanstack-ai","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-sdk-vercel-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-secure-access-to-external-services-for-your-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public","title":"Vercel Container Registry repositories can now be made public","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams","distance":0.1373},{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","distance":0.1587},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","distance":0.2238},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","distance":0.2463},{"site":"vercel-docs","path":"/docs/container-registry","distance":0.2573}],"related":[{"site":"vercel-docs","path":"/docs/container-registry/public-and-shared-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-use-vercel-container-registry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-container-registry-with-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vcr-login-github-action","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","title":"Vercel Cron Jobs are now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cron-jobs"},{"site":"vercel-docs","path":"/docs/cron-jobs/manage-cron-jobs"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","distance":0.1015},{"site":"vercel-web","path":"/blog/cron-jobs","distance":0.1178},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-support-100-per-project-on-every-plan","distance":0.1998},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","distance":0.2081},{"site":"vercel-docs","path":"/docs/cron-jobs","distance":0.2173}],"related":[{"site":"vercel-web","path":"/blog/cron-jobs","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/run-scheduled-jobs-with-vercel-cron-jobs-and-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/usage-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cron-jobs/quickstart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-support-100-per-project-on-every-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cron-jobs-now-visible-in-deployment-summary","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-cron-jobs-from-deployment-summary","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","title":"Vercel database templates now support any marketplace provider","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","distance":0.2275},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","distance":0.2365},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.238},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","distance":0.2526}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/aws-databases-now-available-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","title":"Vercel Domains overhauled with instant search and at-cost pricing","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.1746},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","distance":0.194},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","distance":0.205},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","distance":0.2173},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","distance":0.2194}],"related":[{"site":"vercel-docs","path":"/docs/domains/registrar-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-experience-for-managing-project-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fast-you-talk-and-to-tlds-now-available-on-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-domains-now-supports-price-sorting-and-availability-filtering","title":"Vercel Domains now supports price sorting and availability filtering","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","distance":0.2082},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","distance":0.2194},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.2408},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2627},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","distance":0.2703}],"related":[{"site":"vercel-changelog","path":"/changelog/domain-search-is-now-available-through-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-domains-registrar-api-for-domain-search-pricing-purchase-and-management","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-drop","title":"Introducing Vercel Drop","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/drop"},{"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"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/drop","distance":0.1467},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-netlify-drop","distance":0.2117},{"site":"vercel-kb","path":"/kb/guide/vercel-drop-vs-cloudflare-direct-upload","distance":0.2184},{"site":"vercel-kb","path":"/kb/guide/bolt-vercel-drop","distance":0.2317},{"site":"vercel-kb","path":"/kb/guide/google-stitch-vercel-drop","distance":0.2367}],"related":[{"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-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/webflow-vercel-drop","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-dev","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-design-and-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","title":"Vercel Edge Functions are now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/routing-middleware"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","distance":0.0609},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","distance":0.1044},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.1496},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","distance":0.168},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.1816}],"related":[{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/regional-edge-functions-are-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-edge-middleware-is-now-generally-available","title":"Vercel Edge Middleware is now generally available","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","distance":0.1615},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","distance":0.1988},{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","distance":0.2073},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.2189},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","distance":0.2215}],"related":[{"site":"vercel-web","path":"/blog/vercel-edge-config-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-edge-runtime","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-middleware-and-edge-functions-are-now-powered-by-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-extension-for-azure-devops-now-available","title":"Vercel extension for Azure DevOps now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines","distance":0.2627},{"site":"vercel-web","path":"/blog/bitbucket","distance":0.2698},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.2805},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","distance":0.2916},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","distance":0.3006}],"related":[{"site":"vercel-docs","path":"/docs/git/vercel-for-azure-pipelines","via":"neighbor"},{"site":"vercel-web","path":"/blog/bitbucket","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-summary","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/external-platforms/azure","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-commenting-on-preview-deployments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/comments-on-preview-deployments-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-supports-microsoft","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","title":"Vercel Firewall now stops DDoS attacks up to 40x faster","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel"}],"inbound":[{"site":"vercel-web","path":"/blog/mitigating-denial-of-wallet-risks-with-vercel"},{"site":"vercel-web","path":"/blog/protectd-evolving-vercels-always-on-denial-of-service-mitigations"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","distance":0.1798},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","distance":0.2051},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","distance":0.2083},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","distance":0.213}],"related":[{"site":"vercel-web","path":"/blog/mitigating-denial-of-wallet-risks-with-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/protectd-evolving-vercels-always-on-denial-of-service-mitigations","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"inbound"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-bypassing-system-mitigations-for-specific-ips","title":"Vercel Firewall now supports bypassing system mitigations for specific IPs","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-firewall-system-bypass-rules","distance":0.0963},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","distance":0.179},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","distance":0.2073},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","distance":0.2651},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","distance":0.2745}],"related":[{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/system-bypass-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-firewall-system-bypass-rules","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/ddos-mitigation","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/temporarily-disable-vercel-firewall-system-ddos-mitigations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-supports-localized-challenge-pages","title":"Vercel Firewall now supports localized challenge pages","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","distance":0.2104},{"site":"vercel-changelog","path":"/changelog/new-firewall-challenge-metrics-now-available","distance":0.2432},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2445},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.2644},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","distance":0.2727}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/security-through-design-creating-the-improved-firewall-experience","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prevent-malicious-traffic-with-attack-challenge-mode-for-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-firewall-challenge-metrics-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-in-the-clerk-sdk","title":"Vercel Firewall proactively protects against vulnerability in the Clerk SDK","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/the-resiliency-of-the-frontend-cloud"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-has-proactively-protected-against-a-vulnerability-in-the-sentry-next","distance":0.1403},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","distance":0.2541},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.2713},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.3024},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","distance":0.3141}],"related":[{"site":"vercel-web","path":"/blog/the-resiliency-of-the-frontend-cloud","via":"inbound"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-has-proactively-protected-against-a-vulnerability-in-the-sentry-next","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","title":"Protection against Next.js CVE-2025-29927","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.1394},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","distance":0.1587},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","distance":0.1885},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","distance":0.1979},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","distance":0.2037}],"related":[{"site":"vercel-kb","path":"/kb/guide/application-authentication-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-30218","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-48068","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49826","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-49005","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","title":"Vercel Firewall protects against the SAMLStorm vulnerability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-has-proactively-protected-against-a-vulnerability-in-the-sentry-next","distance":0.239},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","distance":0.2516},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-in-the-clerk-sdk","distance":0.2541},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","distance":0.2562},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","distance":0.2775}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-web","path":"/blog/critical-npm-supply-chain-attack-response-september-8-2025","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-has-proactively-protected-against-a-vulnerability-in-the-sentry-next","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-in-the-clerk-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-firewall-notifications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-rule-builder-now-supports-or-for-rule-condition-groups","title":"Vercel Firewall rule builder now supports `OR` for rule condition groups","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.2848},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","distance":0.2953},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2954},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.3143},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","distance":0.3277}],"related":[{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rule-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","title":"Vercel Flags are now optimized for agents","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/flags"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.1519},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.1812},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.19},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","distance":0.2201},{"site":"flags-sdk","path":"/docs/providers/vercel","distance":0.2262}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-targeting-rules-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-now-supports-json-values","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/authenticate-vercel-flags-with-openid-connect-by-default","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","title":"Vercel Flags is now generally available","summary":null,"outbound":[{"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/sdks/openfeature"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.0538},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.1213},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.1513},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.1519},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","distance":0.1659}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","title":"Vercel Flags is now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/limits-and-pricing"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/sdks/openfeature"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.0538},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.12},{"site":"vercel-docs","path":"/docs/flags/vercel-flags","distance":0.1559},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","distance":0.1567},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.1812}],"related":[{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"flags-sdk","path":"/docs/providers/vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-flags-now-supports-json-values","title":"Vercel Flags now supports JSON values","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/flags/vercel-flags"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.2162},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","distance":0.2275},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","distance":0.2444},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","distance":0.2786},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","distance":0.282}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-splits-work-in-vercel-flags","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-web","path":"/blog/toolbar-feature-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-are-now-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/progressive-rollouts-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-flags-segments-with-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","title":"Vercel for Platforms can now deploy from your users' GitHub repositories","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/platforms"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/create-a-new-deployment"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/changelog-september-2020","distance":0.2492},{"site":"vercel-web","path":"/blog/bitbucket","distance":0.2572},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","distance":0.2607},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","distance":0.2634},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","distance":0.2671}],"related":[{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/bitbucket","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploy-button","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/git/vercel-for-github","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deployments-can-now-require-cryptographically-verified-commits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/restrict-repository-deployments-to-specific-teams","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-extension-for-azure-devops-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","title":"Vercel for Slack now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent/pricing"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","distance":0.1005},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","distance":0.1509},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","distance":0.1559},{"site":"vercel-docs","path":"/docs/agent","distance":0.1839},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","distance":0.1928}],"related":[{"site":"vercel-docs","path":"/docs/agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/agents-at-work-a-partnership-with-salesforce-and-slack","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-slack-agents-can-be-easy","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-is-now-available-in-slack-code-channels","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-available-in-slack","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-investigations-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","title":"Vercel Functions can now be up to 5GB in package size","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables/managing-environment-variables"},{"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/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/networking/static-ips"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb"},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","distance":0.1233},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.2044},{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","distance":0.2176},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","distance":0.2194},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.2262}],"related":[{"site":"vercel-kb","path":"/kb/guide/troubleshooting-function-250mb-limit","via":"inbound"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-bundle-size-limit-increased-to-500mb","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","title":"Vercel Functions can now run on Fluid compute","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects"},{"site":"vercel-changelog","path":"/changelog/in-function-concurrency-now-in-public-beta"},{"site":"vercel-changelog","path":"/changelog/python-support-added-to-in-function-concurrency-beta"},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-fluid-compute","distance":0.1039},{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","distance":0.1069},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","distance":0.1106},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","distance":0.1746},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.1805}],"related":[{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/fluid-compute-evolving-serverless-for-ai-workloads","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fluid-compute","via":"neighbor"},{"site":"vercel-docs","path":"/docs/fundamentals/what-is-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-is-now-the-default-for-new-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fluid-compute-now-supports-isr-background-and-on-demand-revalidation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/in-function-concurrency-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","title":"Vercel Functions can now run up to 30 minutes","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"},{"site":"vercel-docs","path":"/docs/queues"},{"site":"vercel-docs","path":"/docs/workflows"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute"},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","distance":0.1748},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.1751},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.1876},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","distance":0.2259}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-can-i-do-about-vercel-serverless-functions-timing-out","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/limitations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","title":"Vercel Functions for Hobby can now run up to 60 seconds","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes","distance":0.2244},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.2259},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","distance":0.267},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.2812},{"site":"vercel-web","path":"/blog/customizing-serverless-functions","distance":0.3142}],"related":[{"site":"vercel-web","path":"/blog/customizing-serverless-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","title":"Vercel Functions now have faster and fewer cold starts","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/quickstart"},{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/bytecode-caching-for-serverless-functions-by-default"},{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","distance":0.1507},{"site":"vercel-web","path":"/blog/introducing-bytecode-caching-for-vercel-functions","distance":0.1957},{"site":"vercel-changelog","path":"/changelog/bytecode-caching-for-serverless-functions-by-default","distance":0.1998},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","distance":0.2167},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","distance":0.2257}],"related":[{"site":"vercel-web","path":"/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter","via":"inbound"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/improve-function-cold-start-performance-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bytecode-caching-for-serverless-functions-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploys-with-improved-function-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-defaults-for-vercel-function-cpu-and-memory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rust-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-scale-12x-faster-for-high-volume-requests","title":"Vercel Functions now scale 12x faster for high-volume requests","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.2167},{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling","distance":0.2221},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.2363},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","distance":0.2424},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","distance":0.2586}],"related":[{"site":"vercel-docs","path":"/docs/functions/concurrency-scaling","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/understanding-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-on-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-support-graceful-shutdown","title":"Vercel Functions now support graceful shutdown","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation","distance":0.3059},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","distance":0.3089},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.3272},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.329},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","distance":0.3302}],"related":[{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-per-path-request-cancellation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-now-have-faster-and-fewer-cold-starts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-request-cancellation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-functions-to-enable-streaming-by-default","title":"Streaming to be enabled by default for all Node.js Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/node-js"},{"site":"vercel-docs","path":"/docs/functions/streaming-functions"},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","distance":0.046},{"site":"vercel-web","path":"/blog/vercel-functions-streaming-to-be-framework-agnostic","distance":0.0867},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","distance":0.1534},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","distance":0.186},{"site":"vercel-web","path":"/blog/streaming-for-serverless-node-js-and-edge-runtimes-with-vercel-functions","distance":0.254}],"related":[{"site":"vercel-changelog","path":"/changelog/streaming-now-enabled-by-default-for-all-node-js-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/streaming-for-serverless-node-js-and-edge-runtimes-with-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/what-is-streaming","via":"neighbor"},{"site":"vercel-web","path":"/blog/an-introduction-to-streaming-on-the-web","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/does-streaming-affect-seo","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-streaming-helps-build-faster-web-applications","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-streaming-runtime-logs-exports","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-github-app-updated-permissions","title":"New GitHub App permissions for Actions and Workflows","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/git/vercel-for-github"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","distance":0.2962},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","distance":0.3019},{"site":"vercel-changelog","path":"/changelog/ai-sdk-and-ai-gateway-now-integrated-in-github-actions","distance":0.3205},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","distance":0.332},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","distance":0.3373}],"related":[{"site":"vercel-kb","path":"/kb/guide/unable-to-find-github-repository","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/trigger-github-actions-with-enriched-deployment-data-from-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-vercel-deployment-promotions-with-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-sdk-and-ai-gateway-now-integrated-in-github-actions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-platforms-can-now-deploy-from-your-users-github-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optionally-disable-deployment_status-webhook-events-for-github-actions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","title":"Vercel has now achieved the ISO 27001:2013 certification ","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/vercel-iso-27001-security"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","distance":0.0857},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-certified-under-the-eu-us-data-privacy-framework-dpf","distance":0.2256},{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","distance":0.2565},{"site":"vercel-changelog","path":"/changelog/vercel-achieves-tisax-al2","distance":0.2677},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","distance":0.2822}],"related":[{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/automatic-ssl-with-vercel-lets-encrypt","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-certified-under-the-eu-us-data-privacy-framework-dpf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-achieves-tisax-al2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-has-proactively-protected-against-a-vulnerability-in-the-sentry-next","title":"Vercel Firewall proactively protects against vulnerability in the Sentry Next.js SDK","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/the-resiliency-of-the-frontend-cloud"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-in-the-clerk-sdk","distance":0.1403},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","distance":0.239},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","distance":0.2436},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","distance":0.2763},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","distance":0.2782}],"related":[{"site":"vercel-web","path":"/blog/the-resiliency-of-the-frontend-cloud","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-in-the-clerk-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/postmortem-on-next-js-middleware-bypass","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-proactively-protects-against-vulnerability-with-middleware","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-deployments-of-vulnerable-next-js-applications-are-now-blocked-by","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/cve-2025-57822","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","title":"Vercel is now available in Stripe Projects","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","distance":0.1348},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","distance":0.1956},{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","distance":0.1992},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","distance":0.2288},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-generally-available-on-the-marketplace-and-v0","distance":0.23}],"related":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-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/ecommerce/stripe","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-generally-available-on-the-marketplace-and-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-drop","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-certified-under-the-eu-us-data-privacy-framework-dpf","title":"Vercel is now certified under the EU-US Data Privacy Framework (DPF)","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","distance":0.2256},{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","distance":0.2705},{"site":"vercel-docs","path":"/docs/security/compliance","distance":0.3116},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","distance":0.327},{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","distance":0.3465}],"related":[{"site":"vercel-web","path":"/blog/vercel-iso-27001-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-supports-hipaa-compliance","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-achieves-tisax-al2-compliance-to-serve-automotive-partners","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-faster-defenses-and-better-visibility-for-your-apps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-has-now-achieved-the-iso-27001-2013-certification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-achieves-tisax-al2","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/post-quantum-crypto","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-knowledge-base","title":"Vercel Knowledge Base","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","distance":0.2601},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","distance":0.2643},{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings","distance":0.271},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","distance":0.2799},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.2812}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-knowledge-agents-without-embeddings","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-to-integrate-ai-into-your-business","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploying-ai-applications","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-enhanced-search-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-help-and-guides-pages-on-the-vercel-docs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-kv","title":"Introducing Vercel KV","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","distance":0.1474},{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.1846},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","distance":0.2357},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","distance":0.2396},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.2472}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-config-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","title":"Vercel KV is now generally available for Hobby and Pro customers","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","distance":0.1328},{"site":"vercel-changelog","path":"/changelog/vercel-kv","distance":0.1474},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","distance":0.1981},{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.2147},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2334}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv","via":"neighbor"},{"site":"vercel-docs","path":"/docs/storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upstash-joins-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","title":"vercel logs CLI command now optimized for agents with historical log querying","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/logs"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improvements-to-command-line-logs","distance":0.2391},{"site":"vercel-changelog","path":"/changelog/you-can-now-read-and-search-changelogs-from-the-cli","distance":0.2464},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2694},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","distance":0.2773},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","distance":0.2812}],"related":[{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-command-line-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/you-can-now-read-and-search-changelogs-from-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-agent-skills","title":"Marketplace integrations now install provider skills","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/integration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","distance":0.2153},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","distance":0.2269},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","distance":0.2626},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.2671},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2867}],"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-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chat-with-vercel-marketplace-integrations-using-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-database-browser-now-supports-redis","title":"Vercel Marketplace database browser now supports Redis","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard"},{"site":"vercel-docs","path":"/docs/marketplace-storage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2263},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","distance":0.2275},{"site":"vercel-changelog","path":"/changelog/query-and-manage-marketplace-databases-from-the-dashboard","distance":0.2319},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","distance":0.2516},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","distance":0.2737}],"related":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/upstash-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-marketplace-integrations-now-available-in-v0","title":"Vercel Marketplace integrations now available in v0","summary":null,"outbound":[],"inbound":[{"site":"v0","path":"/docs/MCP"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2016},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","distance":0.2106},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","distance":0.2246},{"site":"vercel-web","path":"/blog/integrations-marketplace","distance":0.2256},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","distance":0.2329}],"related":[{"site":"v0","path":"/docs/MCP","via":"inbound"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/expanding-observability-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-supabase-increased-signups-through-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/install-marketplace-integrations-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/v0-adds-one-click-integrations-for-email-auth-search-and-databases","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sentry-checkly-and-dash0-join-the-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","title":"Vercel MCP can now deploy code","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.1876},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.1993},{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server","distance":0.2211},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","distance":0.2216},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2355}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/give-agents-access-to-protected-deployments-via-vercels-mcp-server","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/claude-design-and-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-purchases","title":"Vercel MCP now supports purchases","summary":null,"outbound":[{"site":"v0","path":"/docs"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/ai-gateway"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/domains/working-with-domains"},{"site":"vercel-docs","path":"/docs/plans/pro-plan"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.239},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.2658},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.2713},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2926},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","distance":0.2939}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","title":"Vercel MCP now supports the 2026-07-28 MCP specification","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-mcp","distance":0.2038},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","distance":0.2207},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.2345},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","distance":0.2669},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","distance":0.2673}],"related":[{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-apps-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","title":"Query observability metrics using the Vercel CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/metrics"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2124},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2173},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","distance":0.2183},{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","distance":0.2231},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","distance":0.2277}],"related":[{"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/query","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-speed-insights-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-checks-for-missing-configuration","title":"Vercel Microfrontends checks for missing configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployment-checks"},{"site":"vercel-docs","path":"/docs/microfrontends"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","distance":0.3092},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.3175},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/microfrontends","distance":0.3312},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","distance":0.3337},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","distance":0.3385}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/microfrontends","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/troubleshooting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/managing-microfrontends/security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/routing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/microfrontends/quickstart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-previews-now-link-across-repositories","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","title":"Vercel Microfrontends is now in Limited Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/microfrontends"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","distance":0.1555},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","distance":0.1565},{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","distance":0.2397},{"site":"vercel-docs","path":"/docs/microfrontends","distance":0.2481},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","distance":0.2697}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-web","path":"/blog/how-vercel-adopted-microfrontends","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/iterating-from-design-to-deploy","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-ai-domains","title":"Purchase .ai domains directly on Vercel","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","distance":0.1886},{"site":"vercel-changelog","path":"/changelog/ai-domain-search-now-available-via-vercel-domains","distance":0.2327},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","distance":0.2733},{"site":"vercel-web","path":"/blog/using-the-ai-sdk-to-fix-edge-case-errors-in-our-code","distance":0.2862},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","distance":0.2985}],"related":[{"site":"vercel-web","path":"/blog/using-the-ai-sdk-to-fix-edge-case-errors-in-our-code","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/deploying-ai-applications","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/lower-prices-for-domains-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-domain-search-now-available-via-vercel-domains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-and-buy-domains-in-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agents-can-now-buy-domains-with-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-domains-at-cost-pricing-and-the-fastest-on-the-web","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-build-commands-for-fastapi-and-flask","title":"Vercel now supports Build Commands for FastAPI and Flask","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","distance":0.2535},{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","distance":0.2914},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","distance":0.2926},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","distance":0.3001},{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","distance":0.3023}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dependencies-can-now-be-installed-with-a-custom-command","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-api-cli-command","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fastapi-frontends-and-static-files-served-from-the-cdn","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-customizing-platform-error-pages","title":"Vercel now supports customizing platform error pages","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/errors"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/custom-error-pages","distance":0.1751},{"site":"vercel-kb","path":"/kb/guide/custom-404-page","distance":0.2869},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","distance":0.3033},{"site":"vercel-web","path":"/blog/platforms-starter-kit","distance":0.3147},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","distance":0.3239}],"related":[{"site":"vercel-docs","path":"/docs/custom-error-pages","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/custom-404-page","via":"neighbor"},{"site":"vercel-web","path":"/blog/platforms-starter-kit","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-edge-middleware-dynamic-at-the-speed-of-static","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-for-platforms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/auth0-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-user-experience-for-vercel-documentation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-specific-error-codes-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","title":"Vercel now supports Domain Connect as a DNS Provider","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/domains/domain-connect"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","distance":0.1414},{"site":"vercel-docs","path":"/docs/domains/domain-connect","distance":0.2383},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","distance":0.2743},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-one-click-bluesky-dns-configuration","distance":0.2819},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","distance":0.2842}],"related":[{"site":"vercel-web","path":"/blog/dns-records-ui","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/set-up-email-with-your-vercel-domain","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-one-click-bluesky-dns-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-one-click-bluesky-dns-configuration","title":"Vercel now supports one-click Bluesky DNS configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","distance":0.2777},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","distance":0.2819},{"site":"vercel-web","path":"/blog/dns-records-ui","distance":0.3177},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","distance":0.32},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","distance":0.3239}],"related":[{"site":"vercel-web","path":"/blog/dns-records-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/domains/managing-dns-records","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automated-dns-configuration-with-domain-connect","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-domain-connect-as-a-dns-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-now-supports-verifying-dns-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-setup-page-after-domain-checkout","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/https-dns-records-are-now-supported-in-vercel-dns","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-pro-plan-in-stripe-projects","title":"Vercel now supports Pro plan in Stripe Projects ","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","distance":0.1348},{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","distance":0.2619},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","distance":0.263},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","distance":0.2705},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","distance":0.2858}],"related":[{"site":"vercel-web","path":"/blog/from-idea-to-secure-checkout-in-minutes-with-stripe","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-pro-pricing-plan","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans/pro-plan","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-deploy-a-next-js-online-store-with-stripe","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/ecommerce/stripe","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-available-in-beta-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/included-pro-usage-is-now-credit-based","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stripe-is-now-generally-available-on-the-marketplace-and-v0","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-for-slack-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","title":"Observability for Vercel Functions now offers a quick-view of key insights","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","distance":0.1603},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.181},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.1903},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","distance":0.2282},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","distance":0.2316}],"related":[{"site":"vercel-web","path":"/blog/how-fluid-compute-works-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-metrics-search-in-observability-plus","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","title":"Vercel Observability is now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87"},{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/monitoring-pricing-reduced-up-to-87"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","distance":0.1538},{"site":"vercel-docs","path":"/docs/observability","distance":0.1798},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.1903},{"site":"vercel-web","path":"/blog/introducing-monitoring","distance":0.1929},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","distance":0.2063}],"related":[{"site":"vercel-web","path":"/blog/introducing-monitoring","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/observability-plus","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observability-plus-replacing-legacy-monitoring","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-data-on-external-api-requests-in-vercel-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-route-aware-for-sveltekit-apps","title":"Vercel Observability is now route-aware for SvelteKit apps","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/observability"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","distance":0.2884},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","distance":0.2977},{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","distance":0.2983},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2991},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","distance":0.3004}],"related":[{"site":"vercel-web","path":"/blog/feature-complete-sveltekit","via":"neighbor"},{"site":"vercel-web","path":"/blog/whats-new-in-svelte-5","via":"neighbor"},{"site":"vercel-web","path":"/blog/using-sveltekit-1-0-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-welcomes-rich-harris-creator-of-svelte","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-now-supported-in-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-otel-1-3-0","title":"@vercel/otel 1.3.0","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","distance":0.1691},{"site":"vercel-docs","path":"/docs/tracing/instrumentation","distance":0.3295},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","distance":0.3492},{"site":"vercel-changelog","path":"/changelog/vercel-ts","distance":0.3766},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","distance":0.3806}],"related":[{"site":"vercel-changelog","path":"/changelog/instrument-and-trace-applications-with-the-opentelemetry-collector","via":"neighbor"},{"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":"eve","path":"/docs/observability/otel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-ts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/native-support-for-sveltekits-new-opentelemetry-spans","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-14","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","title":"Vercel Passport is now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/introducing-eve-an-open-source-agent-framework"},{"site":"vercel-changelog","path":"/changelog/trusted-sources-for-deployment-protection"},{"site":"vercel-docs","path":"/docs/audit-log"},{"site":"vercel-docs","path":"/docs/connect"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"},{"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/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"},{"site":"vercel-docs","path":"/docs/plans"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","distance":0.108},{"site":"vercel-docs","path":"/docs/passport","distance":0.1503},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.1688},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.1837},{"site":"vercel-docs","path":"/docs/passport/set-up-identity-provider","distance":0.222}],"related":[{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nextjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport-nuxt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-protect-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhancing-security-of-backend-connectivity-with-openid-connect","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-passport-is-now-in-public-beta","title":"Vercel Passport is now in Public Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/passport"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents"},{"site":"vercel-web","path":"/blog/vercel-ship-2026-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","distance":0.108},{"site":"vercel-docs","path":"/docs/passport","distance":0.2218},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","distance":0.2284},{"site":"vercel-docs","path":"/docs/passport/read-identity","distance":0.2642},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","distance":0.2671}],"related":[{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-ship-2026-recap","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/vercel-passport","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-passport-generally-available","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-changelog","path":"/changelog/oidc-federation-now-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openid-connect-federation-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","title":"Vercel plugin is now available in Grok Build","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","distance":0.1816},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","distance":0.2015},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","distance":0.242},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","distance":0.2522},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","distance":0.293}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/grok-build","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-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","title":"Vercel Plugin now available in Kimi Code CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","distance":0.1679},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","distance":0.2175},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","distance":0.242},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","distance":0.2748},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","distance":0.3384}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/kimi","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","title":"Vercel Plugin now available in VS Code and GitHub Copilot CLI","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","distance":0.156},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","distance":0.1679},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","distance":0.2015},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","distance":0.219},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2976}],"related":[{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-vercel-agent","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-openai-codex-and-codex-cli-support","title":"Vercel plugin now supported on OpenAI Codex and Codex CLI","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-vercel-plugin-for-coding-agents","distance":0.1625},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","distance":0.219},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","distance":0.2522},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","distance":0.2748},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","distance":0.2943}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/coding-agents/openai-codex","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-vs-code-and-github-copilot-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-is-now-available-in-grok-build","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-plugin-now-available-in-kimi-code-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-2-codex-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gpt-5-1-codex-max-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","title":"Introducing Vercel Postgres","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.1595},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","distance":0.1801},{"site":"vercel-changelog","path":"/changelog/improved-performance-for-vercel-postgres-from-edge-functions","distance":0.2137},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","distance":0.238},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","distance":0.2381}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/aws-databases-are-now-live-on-the-vercel-marketplace-and-v0","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-templates-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-performance-for-vercel-postgres-from-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-database-templates-now-support-any-marketplace-provider","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/prisma-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-postgres-is-now-available-for-pro-users","title":"Vercel Postgres is now generally available for Hobby and Pro users","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","distance":0.1328},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","distance":0.1801},{"site":"vercel-web","path":"/blog/vercel-storage","distance":0.1874},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","distance":0.2144},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","distance":0.2188}],"related":[{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/improved-infrastructure-pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integrated-billing-for-supabase-redis-and-edgedb","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-kv","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-performance-for-vercel-postgres-from-edge-functions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","title":"Vercel Private Blob is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-blob/private-storage"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","distance":0.095},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","distance":0.1714},{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","distance":0.1771},{"site":"vercel-changelog","path":"/changelog/vercel-blob","distance":0.1854},{"site":"vercel-changelog","path":"/changelog/create-private-blob-stores-with-a-single-click-in-v0","distance":0.1856}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/private-storage-for-vercel-blob-now-available-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-oidc-authentication","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/signed-urls-are-now-available-for-vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-private-blob-stores-with-a-single-click-in-v0","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","title":"Vercel Python Queues SDK is now available in beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/queues/python-sdk"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","distance":0.1671},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","distance":0.1929},{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","distance":0.2058},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.2227},{"site":"vercel-docs","path":"/docs/queues","distance":0.2312}],"related":[{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-web","path":"/blog/investing-in-the-python-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-background-tasks-with-celery-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","title":"Vercel Python SDK is now available in beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds"},{"site":"vercel-docs","path":"/docs/functions"},{"site":"vercel-docs","path":"/docs/functions/functions-api-reference/vercel-sdk-python"},{"site":"vercel-docs","path":"/docs/routing-middleware"},{"site":"vercel-docs","path":"/docs/vercel-blob"}],"inbound":[{"site":"vercel-web","path":"/blog/ship-ai-2025-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","distance":0.1671},{"site":"vercel-web","path":"/blog/investing-in-the-python-ecosystem","distance":0.2848},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.3113},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","distance":0.3123},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","distance":0.3145}],"related":[{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","via":"inbound"},{"site":"vercel-web","path":"/blog/investing-in-the-python-ecosystem","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sign-in-with-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-typescript-sdk","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","title":"Vercel Queues is now in Limited Beta","summary":null,"outbound":[],"inbound":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","distance":0.1318},{"site":"vercel-docs","path":"/docs/queues","distance":0.1818},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","distance":0.1929},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.272},{"site":"vercel-docs","path":"/docs/queues/quickstart","distance":0.2886}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/migrate-to-vercel-from-cloudflare","via":"inbound"},{"site":"vercel-web","path":"/blog/the-ai-cloud-a-unified-platform-for-ai-workloads","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-ship-2025-recap","via":"inbound"},{"site":"vercel-docs","path":"/docs/queues","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/celery","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","title":"Vercel Queues now in public beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/usage-and-pricing"},{"site":"vercel-docs","path":"/docs/queues"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","distance":0.1318},{"site":"vercel-docs","path":"/docs/queues","distance":0.1341},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","distance":0.2058},{"site":"vercel-docs","path":"/docs/queues/concepts","distance":0.2453},{"site":"vercel-docs","path":"/docs/queues/sdk","distance":0.2592}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-docs","path":"/docs/queues/concepts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/sdk","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/quickstart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-is-now-in-limited-beta","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/handle-order-ahead-traffic-spikes-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/queues/observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/queues-now-supports-7-day-ttl","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/pro-customers-can-now-deploy-faster-with-on-demand-concurrency-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","title":"Vercel Remote Cache is now generally available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","distance":0.1657},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","distance":0.1709},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","distance":0.2141},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.2272}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","title":"Vercel Remote Cache SDK is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.1047},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","distance":0.1911},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","distance":0.1964},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","distance":0.2292},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.2334}],"related":[{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/free-vercel-remote-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","title":"Vercel Sandbox now provides 64 GB of storage","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","distance":0.2157},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","distance":0.2222},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images","distance":0.2306},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2376},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.242}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","title":"Vercel Sandbox can now run for up to 24 hours","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","distance":0.0932},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.1714},{"site":"vercel-changelog","path":"/changelog/dynamically-extend-timeout-of-an-active-sandbox","distance":0.1838},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.2142},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2238}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dynamically-extend-timeout-of-an-active-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","title":"Vercel Sandbox CLI is now available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1164},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","distance":0.1341},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","distance":0.1346},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","distance":0.1538},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","distance":0.1867}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-postgres-connections","title":"Postgres connections now work through Sandbox firewall","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","distance":0.2308},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","distance":0.2938},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","distance":0.3053},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","distance":0.3135},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.3137}],"related":[{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-firewall-now-supports-request-proxying-and-filtering","title":"Vercel Sandbox firewall now supports request proxying and filtering","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","distance":0.2083},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","distance":0.2683},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","distance":0.2714},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.2767},{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","distance":0.2885}],"related":[{"site":"vercel-web","path":"/blog/a-sandbox-without-a-network-boundary-is-only-half-a-sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/full-sandbox-egress-firewall-now-available-on-hobby-plan","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/safely-inject-credentials-in-http-headers-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-routing-is-now-18x-faster-globally","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","title":" Vercel Sandbox increases concurrency and port limits","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.132},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","distance":0.1714},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1864},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","distance":0.1911},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","distance":0.1996}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","title":"Vercel Sandbox is now available in all regions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/regions"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/regions"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.06},{"site":"vercel-docs","path":"/docs/sandbox/concepts/regions","distance":0.1632},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1767},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","distance":0.2007},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.201}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","title":"Vercel Sandbox is now globally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/regions"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.06},{"site":"vercel-docs","path":"/docs/sandbox/concepts/regions","distance":0.1548},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1731},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.202},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","distance":0.2053}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images","title":"Vercel Sandbox now runs on Vercel Managed Images","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/share-vercel-container-registry-repositories-across-teams"},{"site":"vercel-changelog","path":"/changelog/vercel-container-registry-repositories-can-now-be-made-public"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","distance":0.1669},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images","distance":0.183},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1952},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","distance":0.2076},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","distance":0.214}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/images","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-install-system-packages-in-vercel-sandbox","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-maximum-duration-extended-to-5-hours","title":"Vercel Sandbox maximum duration extended to 5 hours","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/plans"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","distance":0.0932},{"site":"vercel-changelog","path":"/changelog/dynamically-extend-timeout-of-an-active-sandbox","distance":0.1353},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.1911},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.2224},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2233}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/dynamically-extend-timeout-of-an-active-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","title":"Vercel Sandbox now accepts environment variables at creation","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1948},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.198},{"site":"vercel-changelog","path":"/changelog/sandbox-now-supports-sudo-and-installing-rpm-packages","distance":0.2205},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2208},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","distance":0.2304}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-now-supports-sudo-and-installing-rpm-packages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-vercel-sandbox-directly-within-vercel-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-calculates-snapshot-storage-costs-daily","title":"Vercel Sandbox now calculates snapshot storage costs daily","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/data-downloaded-by-vercel-sandbox-is-now-free","distance":0.2304},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","distance":0.2359},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.2494},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","distance":0.2638},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-memory-observability","distance":0.2703}],"related":[{"site":"vercel-changelog","path":"/changelog/data-downloaded-by-vercel-sandbox-is-now-free","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-memory-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-support-custom-images","title":"Vercel Sandbox now support Custom Images","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/container-registry"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images"},{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/introducing-vcr-vercel-container-registry"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images","distance":0.1669},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2136},{"site":"vercel-docs","path":"/docs/sandbox/concepts/images","distance":0.2179},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2186},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","distance":0.2222}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-managed-images","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-1-vcpu-2-gb-configurations","title":"Vercel Sandbox now supports 1 vCPU + 2 GB RAM configurations","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","distance":0.0762},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.2179},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.2381},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2423},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2441}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","title":"Vercel Sandbox now supports 10,000 concurrent sandboxes and 5,000 vCPUs per minute","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/limits"},{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/pricing"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.132},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","distance":0.1796},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","distance":0.2085},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","distance":0.2142},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-1-vcpu-2-gb-configurations","distance":0.2179}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-1-vcpu-2-gb-configurations","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-devin-outposts","title":"Vercel Sandbox now supports Devin Outposts","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots"},{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/devin-outposts-vercel-sandbox","distance":0.1778},{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin","distance":0.1868},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2924},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2931},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2937}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/ecosystem/devin","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-reconnect-to-a-running-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-fuse-based-filesystems","title":"Vercel Sandbox now supports FUSE-based filesystems","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/mount-remote-storage","distance":0.1904},{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","distance":0.232},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2435},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2613},{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-are-now-in-public-beta","distance":0.2652}],"related":[{"site":"vercel-changelog","path":"/changelog/run-docker-containers-inside-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/drives-for-vercel-sandbox-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-memory-observability","title":"Vercel Sandbox now supports memory observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","distance":0.1445},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","distance":0.2505},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.2514},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2595},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2624}],"related":[{"site":"vercel-changelog","path":"/changelog/more-granular-observability-for-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/connect-to-and-manage-sandboxes-from-the-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","title":"Vercel Sandbox now supports Secure Compute","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/networking/secure-compute"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/secure-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/secure-compute","distance":0.1736},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1782},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1986},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2007},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2156}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-up-to-32-vcpu-64-gb-ram-configurations","title":"Vercel Sandbox now supports up to 32 vCPU + 64 GB RAM configurations","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-1-vcpu-2-gb-configurations","distance":0.0762},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.1796},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.1996},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","distance":0.2157},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2364}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-1-vcpu-2-gb-configurations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-64-gb-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","title":"Automatic persistence now in beta on Vercel Sandbox","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names"},{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga","distance":0.1019},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","distance":0.1595},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","distance":0.1917},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2199},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.226}],"related":[{"site":"vercel-web","path":"/blog/optimizing-vercel-sandbox-snapshots","via":"inbound"},{"site":"vercel-docs","path":"/docs/sandbox/concepts/persistent-sandboxes","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/vercel-sandbox-duration-and-persistence","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/concepts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-routing-is-now-18x-faster-globally","title":"Vercel Sandbox routing is now 18x faster globally","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","distance":0.2258},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2383},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","distance":0.2519},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2621},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","distance":0.2877}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-available-in-all-regions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-increases-concurrency-and-port-limits","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-10-000-concurrent-sandboxes-and-5-000-vcpus-per-minute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-snapshots-now-allow-custom-retention-periods","title":"Vercel Sandbox snapshots now allow custom retention periods","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","distance":0.1475},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","distance":0.2017},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2089},{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","distance":0.2243},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","distance":0.2364}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/concepts/snapshots","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandboxes-now-expire-based-on-last-use","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filesystem-snapshots-supported-on-vercel-sandboxes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-can-now-run-for-up-to-24-hours","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-supports-forking","title":"Vercel Sandbox supports forking","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/sandbox"},{"site":"vercel-docs","path":"/docs/sandbox/sdk-reference"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","distance":0.2502},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","distance":0.2832},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2852},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.286},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","distance":0.2869}],"related":[{"site":"vercel-docs","path":"/docs/sandbox/cli-reference","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-accepts-environment-variables-at-creation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","title":"Vercel Sandboxes are now generally available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","distance":0.1164},{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","distance":0.1333},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","distance":0.161},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","distance":0.1705},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.1731}],"related":[{"site":"vercel-web","path":"/blog/vercel-sandbox-is-now-generally-available","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sandbox/working-with-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/run-untrusted-code-with-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ssh-into-running-sandboxes-with-the-sandbox-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sandbox-create-waits-until-ready","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-now-allow-unique-customizable-names","title":"Vercel Sandboxes now allow unique, customizable names","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/sandbox-persistence-is-now-ga"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-persistent-sandboxes-beta","distance":0.1595},{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","distance":0.1793},{"site":"vercel-changelog","path":"/changelog/custom-tags-available-in-beta-on-vercel-sandbox","distance":0.2051},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","distance":0.2053},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","distance":0.2147}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-sandboxes-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-tags-available-in-beta-on-vercel-sandbox","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-is-now-globally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-sandbox-cli-is-now-more-agent-friendly","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-cli-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","title":"Vercel Secure Compute now supports multiple environments","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/deployments/environments"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","distance":0.2318},{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","distance":0.2424},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","distance":0.2448},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","distance":0.26},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","distance":0.273}],"related":[{"site":"vercel-web","path":"/blog/environment-variables-ui","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-environments-are-now-available-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-connect-now-supports-custom-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-in-private-beta","title":"Vercel Security Dashboard is in private beta","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/vercel-ship-2026-recap"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","distance":0.1518},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","distance":0.2642},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","distance":0.2688},{"site":"vercel-docs","path":"/docs/security/security-dashboard","distance":0.284},{"site":"vercel-web","path":"/blog/protecting-deployments","distance":0.3047}],"related":[{"site":"vercel-web","path":"/blog/vercel-ship-2026-recap","via":"inbound"},{"site":"vercel-docs","path":"/docs/security/security-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-deployments","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-for-enterprise-apps-and-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-now-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-microfrontends-is-now-in-limited-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-now-generally-available","title":"Vercel Security Dashboard is now generally available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cli/security"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-in-private-beta","distance":0.1518},{"site":"vercel-docs","path":"/docs/security/security-dashboard","distance":0.1679},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","distance":0.1715},{"site":"vercel-web","path":"/blog/dashboard-redesign","distance":0.2544},{"site":"vercel-docs","path":"/docs/cli/security","distance":0.2561}],"related":[{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security-roundup-improved-bot-defenses-dos-mitigations-and-insights","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-agent","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-security-dashboard-is-in-private-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/unified-security-actions-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-analytics-experience-now-available-on-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","title":"Vercel Terraform Provider now supports Vercel Firewall resources","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9","distance":0.1775},{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","distance":0.2342},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","distance":0.2529},{"site":"vercel-changelog","path":"/changelog/rest-api-for-the-vercel-firewall","distance":0.2734},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2748}],"related":[{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/firewall-api","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-firewall-in-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rest-api-for-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-v1-9","title":"Vercel Terraform Provider v1.9","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/git-lfs-support"},{"site":"vercel-changelog","path":"/changelog/improved-resiliency-for-vercel-functions-with-failover-support"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","distance":0.1509},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","distance":0.1775},{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","distance":0.242},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","distance":0.2742},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3146}],"related":[{"site":"vercel-kb","path":"/kb/guide/integrating-terraform-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/integrating_aws_secrets_manager_with_vercel_using_terraform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-terraform-provider-now-supports-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/march-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-toolbar-now-available-to-use-collaboration-features-in-production","title":"@vercel/toolbar available to use collaboration features in production","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/command-menu-now-available-in-deployments"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","distance":0.149},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","distance":0.1687},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","distance":0.1797},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost/add-to-production","distance":0.1821},{"site":"vercel-docs","path":"/docs/vercel-toolbar/in-production-and-localhost","distance":0.1861}],"related":[{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-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/vercel-toolbar/in-production-and-localhost","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/managing-toolbar","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar/browser-extension","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/use-the-vercel-toolbar-in-production","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/easier-toolbar-setup-for-sveltekit-and-other-vite-based-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-toolbar","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/the-vercel-toolbar-is-now-more-compact-and-dynamic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/performance-improvements-and-setting-update-for-the-vercel-toolbar","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-ts","title":"Introducing vercel.ts: Programmatic project configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-ts"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/support-for-now-json-will-be-removed-on-march-31-2026"},{"site":"vercel-web","path":"/blog/how-we-run-vercels-cdn-in-front-of-discourse"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-typescript-sdk","distance":0.2204},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-toml","distance":0.2833},{"site":"vercel-docs","path":"/docs/project-configuration","distance":0.2877},{"site":"vercel-web","path":"/blog/changelog-may-2020","distance":0.2879},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2887}],"related":[{"site":"vercel-web","path":"/blog/how-we-run-vercels-cdn-in-front-of-discourse","via":"inbound"},{"site":"vercel-docs","path":"/docs/project-configuration/vercel-toml","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/advanced-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-dev","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-the-vercel-typescript-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/next-js-13-4","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/optimized-cdn-caching-and-deploying-of-immutable-static-assets","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-postgres","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v28","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-generally-available","title":"Vercel WAF for Blob is now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-in-beta"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"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-changelog","path":"/changelog/vercel-waf-for-blob-is-now-in-beta","distance":0.0636},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.2338},{"site":"vercel-docs","path":"/docs/vercel-blob/security","distance":0.2392},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2424},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2472}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-private-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-in-beta","title":"Vercel WAF for Blob is now in beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/caching/cdn-cache"},{"site":"vercel-docs","path":"/docs/vercel-blob/security"},{"site":"vercel-docs","path":"/docs/vercel-firewall"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/custom-rules"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-generally-available","distance":0.0636},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2179},{"site":"vercel-docs","path":"/docs/vercel-blob/security","distance":0.2335},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.2479},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2507}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-waf-now-supports-persistent-actions","title":"Vercel WAF now supports persistent actions","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.1676},{"site":"vercel-changelog","path":"/changelog/clients-blocked-by-persistent-actions-now-receive-a-403-forbidden-response","distance":0.2136},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","distance":0.2521},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","distance":0.2575},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.2637}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/clients-blocked-by-persistent-actions-now-receive-a-403-forbidden-response","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/protect-against-owasp-risks-with-the-vercel-firewall","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","title":"Vercel WAF rate limiting now generally available","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-waf-now-supports-persistent-actions"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.1697},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","distance":0.1909},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","distance":0.1973},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.206},{"site":"vercel-changelog","path":"/changelog/rate-limiting-now-available-on-hobby-with-higher-included-usage-on-pro","distance":0.2194}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/add-rate-limiting-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/limit-abuse-with-rate-limiting","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf/rate-limiting-sdk","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rate-limiting-now-available-on-hobby-with-higher-included-usage-on-pro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-for-blob-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","title":"Vercel Workflow is now twice as fast","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","distance":0.3024},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","distance":0.303},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","distance":0.3046},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","distance":0.3074},{"site":"vercel-docs","path":"/docs/workflows","distance":0.3118}],"related":[{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-workflow","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"workflow","path":"/docs/performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-builds-for-everyone","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-steps-are-now-up-to-21-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-deploy-times-for-large-builds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercel-workflows-trace-viewer-now-has-a-minimap","title":"Vercel Workflows trace viewer now has a minimap","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","distance":0.1752},{"site":"vercel-changelog","path":"/changelog/measure-time-between-steps-in-vercel-workflows","distance":0.3188},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","distance":0.3347},{"site":"vercel-changelog","path":"/changelog/traces-now-support-tree-and-waterfall-views","distance":0.3436},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","distance":0.3576}],"related":[{"site":"vercel-changelog","path":"/changelog/redesigned-trace-viewer-for-vercel-workflows","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/measure-time-between-steps-in-vercel-workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/traces-now-support-tree-and-waterfall-views","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-search-for-workflow-runs-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","title":"Vercel's bot verification now supports Web Bot Auth","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/bot-management"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","distance":0.1917},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","distance":0.1943},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.2015},{"site":"vercel-changelog","path":"/changelog/attack-challenge-mode-now-allows-verified-bots-and-vercel-cron-jobs","distance":0.2385},{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","distance":0.2448}],"related":[{"site":"vercel-web","path":"/blog/one-click-bot-protection-now-in-public-beta","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-protect-your-ai-app-from-bots","via":"neighbor"},{"site":"vercel-docs","path":"/docs/botid/verified-bots","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-utilize-vercels-bot-management-features","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/protect-ai-endpoints-with-vercel-botid","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-protection-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/attack-challenge-mode-now-allows-verified-bots-and-vercel-cron-jobs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-and-query-bot-verification-data-in-vercel-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","title":"Vercel CDN gets a new dashboard experience","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/cdn"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","distance":0.1846},{"site":"vercel-docs","path":"/docs/cdn","distance":0.221},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2347},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","distance":0.2351},{"site":"vercel-web","path":"/blog/how-we-run-vercels-cdn-in-front-of-discourse","distance":0.2424}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-run-vercels-cdn-in-front-of-discourse","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-docs","path":"/docs/how-vercel-cdn-works","via":"neighbor"},{"site":"vercel-web","path":"/blog/new-edge-dev-infrastructure","via":"neighbor"},{"site":"vercel-docs","path":"/docs/manage-cdn-usage","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-we-made-the-vercel-dashboard-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-cdn-performance","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manually-purge-the-cdn-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-respects-cache-control-headers-from-external-origins-by-default","title":"Vercel CDN now respects Cache-Control headers from external origins by default","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/caching/cache-control-headers"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge"},{"site":"vercel-docs","path":"/docs/routing/rewrites"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","distance":0.1831},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.2351},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","distance":0.2605},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","distance":0.2648},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","distance":0.2679}],"related":[{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_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/set-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/proxied-responses-now-cacheable-via-cdn-cache-control-headers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vary-cookie-responses-no-longer-cached","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-now-supports-updating-routing-rules-without-a-new-deployment","title":"Vercel's CDN now supports updating routing rules without a new deployment","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/routing"}],"inbound":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","distance":0.1785},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.1846},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","distance":0.2141},{"site":"vercel-docs","path":"/docs/routing","distance":0.2249},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","distance":0.2631}],"related":[{"site":"vercel-web","path":"/blog/inside-the-vercel-intern-experience","via":"inbound"},{"site":"vercel-docs","path":"/docs/routing/project-routing-rules","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using_vercel_as_a_cdn","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-application-aware-routing","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/managing-redirects-from-your-cms-using-vercel-bulk-redirects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cdn","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-projects-now-support-routing-rules","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bulk-redirects-ui-api-and-cli-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/transform-rules-are-now-available-in-vercel-json","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-routing-rules","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","title":"Vercel MCP now in Public Beta","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"}],"inbound":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.1075},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","distance":0.1876},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.1888},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","distance":0.2038},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp","distance":0.2106}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/devin-raycast-windsurf-and-goose-now-supported-on-vercel-mcp","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/chatgpt-is-now-supported-on-vercel-mcp","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/version-7-of-npm-is-now-supported","title":"Version 7 of npm is now supported","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","distance":0.1543},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","distance":0.2314},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.2654},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","distance":0.2745},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.3006}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-the-latest-npm-version-for-my-vercel-deployment","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v7-support","via":"neighbor"},{"site":"vercel-web","path":"/blog/node-10","via":"neighbor"},{"site":"vercel-docs","path":"/docs/package-managers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v8-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/automatic-pnpm-v10-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-advanced-function-metrics-with-observability","title":"View advanced function metrics with Observability","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","distance":0.1603},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","distance":0.1691},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","distance":0.2223},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","distance":0.2231},{"site":"vercel-changelog","path":"/changelog/track-build-metrics-and-resource-consumption-with-observability","distance":0.232}],"related":[{"site":"vercel-web","path":"/blog/functions-tab","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-for-functions-now-offers-at-a-glance-key-insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/application-aware-observability-in-limited-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/overview-page-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/track-build-metrics-and-resource-consumption-with-observability","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-and-override-feature-flags-from-the-vercel-toolbar","title":"View and override feature flags from the Vercel Toolbar","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/toolbar-feature-flags"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/recommend-branch-based-feature-flag-overrides"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/toolbar-feature-flags","distance":0.0926},{"site":"vercel-changelog","path":"/changelog/recommend-branch-based-feature-flag-overrides","distance":0.1637},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","distance":0.1782},{"site":"vercel-web","path":"/blog/feature-flags","distance":0.1901},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","distance":0.1964}],"related":[{"site":"vercel-web","path":"/blog/feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-flags-explorer-first-party-integrations-and-updates","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-flags-platform-native-feature-flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/flags-explorer/getting-started","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/recommend-branch-based-feature-flag-overrides","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/observe-your-feature-flags-with-the-vercel-dx-platform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-ga","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-flags-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/declaring-feature-flags-in-code","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-and-query-bot-verification-data-in-vercel-observability","title":"View & query bot verification data in Vercel Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/bot-management"},{"site":"vercel-docs","path":"/docs/observability"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","distance":0.1776},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","distance":0.2393},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","distance":0.2466},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","distance":0.2709},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","distance":0.2733}],"related":[{"site":"vercel-web","path":"/blog/introducing-botid","via":"neighbor"},{"site":"vercel-docs","path":"/docs/observability/insights","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bot-activity-and-crawler-insights-now-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-now-leverages-vercels-verified-bot-directory","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-bot-verification-now-supports-web-bot-auth","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-botid-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-metrics-in-cli","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-logs-over-time-with-new-time-series-chart","title":"View logs over time with new time series chart","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","distance":0.2872},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","distance":0.2941},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.3055},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","distance":0.3072},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","distance":0.3109}],"related":[{"site":"vercel-docs","path":"/docs/logs/runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-logs-ui-to-search-inspect-and-share-application-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-live-mode-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-appear-in-the-dashboard-6x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/redesigned-search-and-filtering-for-runtime-logs","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-projects-grouped-by-git-repository-with-list-view","title":"View projects grouped by Git repository with list view","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.27},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","distance":0.3173},{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","distance":0.3191},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","distance":0.3205},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","distance":0.323}],"related":[{"site":"vercel-web","path":"/blog/monorepos-are-changing-how-teams-build-software","via":"neighbor"},{"site":"vercel-web","path":"/blog/dashboard-redesign","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/git-repositories-can-now-be-searched-for-and-imported-easily","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edit-git-settings-for-all-projects-in-a-repo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-formatting-for-pull-request-comments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/a-new-dashboard-overview-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-specific-error-codes-in-runtime-logs","title":"View specific error codes in runtime logs","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/errors"},{"site":"vercel-docs","path":"/docs/logs/runtime"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","distance":0.312},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","distance":0.322},{"site":"vercel-changelog","path":"/changelog/referer-now-available-in-runtime-logs","distance":0.3254},{"site":"vercel-changelog","path":"/changelog/view-logs-over-time-with-new-time-series-chart","distance":0.328},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-customizing-platform-error-pages","distance":0.3291}],"related":[{"site":"vercel-changelog","path":"/changelog/rewrites-and-redirects-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/runtime-logs-now-show-event-sequences-for-vercel-requests","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/referer-now-available-in-runtime-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/view-logs-over-time-with-new-time-series-chart","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-now-supports-customizing-platform-error-pages","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/view-upload-and-delete-blob-files-in-the-dashboard","title":"View, upload, and delete Blob files in the dashboard","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","distance":0.1787},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","distance":0.1907},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-file-upload-progress","distance":0.202},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","distance":0.2064},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","distance":0.2136}],"related":[{"site":"vercel-web","path":"/blog/vercel-blob-now-generally-available","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-changelog","path":"/changelog/performance-and-usability-improvements-for-vercel-blob-storage","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-cli-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-now-supports-file-upload-progress","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-insights-now-available-in-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-blob-is-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","title":"Visual Editing can now be used with Builder.io ","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/visual-editing"},{"site":"vercel-web","path":"/blog/your-guide-to-headless-commerce"}],"inbound":[{"site":"vercel-web","path":"/blog/visual-editing"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","distance":0.1269},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-tinacms","distance":0.1646},{"site":"vercel-web","path":"/blog/visual-editing","distance":0.1803},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","distance":0.1881},{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","distance":0.2665}],"related":[{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","via":"neighbor"},{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-tinacms","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sanity-innovating-on-a-faster-collaborative-web","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/content-link-can-now-be-used-with-contentful","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/refreshed-deployment-link-design-in-vercel-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-and-fixes","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","title":"Visual Editing can now be used with DatoCMS","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/visual-editing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-tinacms","distance":0.1187},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","distance":0.1269},{"site":"vercel-web","path":"/blog/visual-editing","distance":0.1896},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","distance":0.1962},{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","distance":0.2511}],"related":[{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","via":"neighbor"},{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-tinacms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sanity-innovating-on-a-faster-collaborative-web","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms","via":"neighbor"},{"site":"vercel-web","path":"/blog/integrations-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/content-link-can-now-be-used-with-contentful","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-tinacms","title":"Visual Editing can now be used with TinaCMS","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/visual-editing"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","distance":0.1187},{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","distance":0.1461},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","distance":0.1646},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","distance":0.2134},{"site":"vercel-web","path":"/blog/visual-editing","distance":0.2138}],"related":[{"site":"vercel-web","path":"/blog/visual-editing-meets-markdown","via":"neighbor"},{"site":"vercel-web","path":"/blog/enhanced-content-management-for-headless-cmses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-datocms","via":"neighbor"},{"site":"vercel-docs","path":"/docs/edit-mode","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/visual-editing-can-now-be-used-with-builder-io","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-sanity-innovating-on-a-faster-collaborative-web","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-new-developer-tools-in-the-vercel-toolbar","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-live-reviews-a-reality-enhanced-preview-experience","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/contentful","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations/cms/dato-cms","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/content-link-can-now-be-used-with-contentful","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/visualize-time-saved-using-turborepo-with-remote-caching","title":"Visualize time saved using Turborepo with Remote Caching","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","distance":0.1455},{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","distance":0.1855},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","distance":0.1878},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.2141},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","distance":0.2145}],"related":[{"site":"vercel-web","path":"/blog/vercel-remote-cache-turbo","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/remote-caching","via":"neighbor"},{"site":"turborepo","path":"/docs/core-concepts/remote-caching","via":"neighbor"},{"site":"vercel-web","path":"/blog/turborepo-remote-cache-nextjs-publish-times-80-percent","via":"neighbor"},{"site":"vercel-web","path":"/blog/monorepos","via":"neighbor"},{"site":"vercel-docs","path":"/docs/monorepos/turborepo","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-usage-graphs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remote-cache-api-for-monorepo-build-tools-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/turborepo-open-source-cli-and-remote-caching-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","title":"Vite projects can now be deployed with zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/environment-variables"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.1106},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","distance":0.1828},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.2292},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2507},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.2548}],"related":[{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-may-2020","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/astro-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","title":"VitePress projects can now be deployed with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.0908},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.1106},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.242},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","distance":0.2483},{"site":"vercel-changelog","path":"/changelog/astro-projects-can-now-be-deployed-with-zero-configuration","distance":0.2539}],"related":[{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/frontend/vite","via":"neighbor"},{"site":"vercel-web","path":"/blog/how-v0-is-building-seo-optimized-sites-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/astro-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vlt-is-now-available-in-builds-via-zero-configuration","title":"vlt is now available in builds via zero configuration","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/build-image"},{"site":"vercel-docs","path":"/docs/package-managers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/python-package-manager-uv-is-now-available-for-builds-with-zero","distance":0.2857},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.2979},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","distance":0.3069},{"site":"vercel-web","path":"/blog/zero-config","distance":0.3304},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.3321}],"related":[{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-package-manager-uv-is-now-available-for-builds-with-zero","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/projects-using-pnpm-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-build-and-deploy-capabilities-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-v24","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/voyage-rerank-3-and-rerank-3-lite-are-now-available-on-ai-gateway","title":"Voyage Rerank 3 and Rerank 3 Lite are now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/api-keys"},{"site":"vercel-docs","path":"/docs/ai-gateway/authentication-and-byok/byok"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","distance":0.2332},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","distance":0.2867},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","distance":0.2891},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","distance":0.2999},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","distance":0.3148}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/reranking","via":"neighbor"},{"site":"ai-sdk","path":"/providers/ai-sdk-providers/voyage","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/cohere-rerank","via":"neighbor"},{"site":"ai-sdk","path":"/docs/ai-sdk-core/reranking","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deepseek-v3-2-now-in-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nova-2-lite-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/gemini-3-6-flash-3-5-flash-lite-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vpc-peering-now-available-as-self-service-for-vercel-secure-compute","title":"VPC Peering now available as self-service for Vercel’s Secure Compute","summary":null,"outbound":[],"inbound":[{"site":"vercel-web","path":"/blog/update-regarding-vercel-service-disruption-on-october-20-2025"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","distance":0.1705},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","distance":0.1787},{"site":"vercel-web","path":"/blog/vercel-security","distance":0.2647},{"site":"vercel-docs","path":"/docs/networking/secure-compute","distance":0.2706},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","distance":0.279}],"related":[{"site":"vercel-web","path":"/blog/update-regarding-vercel-service-disruption-on-october-20-2025","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-docs","path":"/docs/networking/secure-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/optimizing-secure-builds-with-hive-and-secure-compute","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-joins-aws-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/secure-compute-is-now-self-serve","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improve-infrastructure-security-with-vercel-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-secure-compute-now-supports-multiple-environments","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-sandbox-now-supports-secure-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-vercel-secure-compute-builds-provisioning-time","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/vuepress-projects-can-now-be-deployed-with-zero-configuration","title":"VuePress projects can now be deployed with zero configuration","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","distance":0.0908},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","distance":0.2292},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","distance":0.2595},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","distance":0.2676},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2716}],"related":[{"site":"vercel-changelog","path":"/changelog/vitepress-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vite-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/remix-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/sveltekit-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/astro-projects-can-now-be-deployed-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/waituntil-is-now-available-for-vercel-functions","title":"waitUntil is now available for Vercel Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/functions-api-reference"},{"site":"vercel-docs","path":"/docs/functions/runtimes"}],"inbound":[{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","distance":0.3247},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.3249},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.3333},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","distance":0.3416},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","distance":0.3481}],"related":[{"site":"vercel-web","path":"/blog/fluid-how-we-built-serverless-servers","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-fluid-compute","via":"inbound"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-execution-duration-limit-for-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/node-js-vercel-functions-now-support-fetch-web-handlers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/wan-3-0-now-available-on-ai-gateway","title":"Wan 3.0 now available on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","distance":0.1397},{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.243},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","distance":0.3023},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","distance":0.3143},{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","distance":0.3152}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/modalities/video-generation/image-to-video","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/qwen-3-8-flash-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/minimax-h3-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-now-supports-asynchronous-video-generation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/wan-models-on-ai-gateway","title":"Wan models on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/video"}],"inbound":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","distance":0.1239},{"site":"vercel-changelog","path":"/changelog/wan-3-0-now-available-on-ai-gateway","distance":0.1397},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","distance":0.2235},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","distance":0.2313},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","distance":0.236}],"related":[{"site":"vercel-web","path":"/blog/video-generation-with-ai-gateway","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":"ai-sdk","path":"/providers/ai-sdk-providers/alibaba","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/wan-3-0-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-video-generation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-imagine-video-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/veo-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/kling-video-models-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/seedance-2.0-video-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","title":"Web Analytics and Speed Insights are now more cost-efficient","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/speed-insights"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","distance":0.2058},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.2061},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","distance":0.2093},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","distance":0.2282},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","distance":0.2376}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/sophisticated-usage-dashboard","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/speed-insights-free-tier","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-speed-insights-experience","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","title":"Public Web Analytics API now available","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api"},{"site":"vercel-docs","path":"/docs/drains"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","distance":0.2124},{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2148},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.2272},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","distance":0.2607},{"site":"vercel-docs","path":"/docs/analytics/web-analytics-api","distance":0.2818}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/query-web-analytics-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","title":"Web Analytics is now generally available","summary":null,"outbound":[],"inbound":[{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics"}],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.1074},{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","distance":0.1653},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","distance":0.1954},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","distance":0.2061},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","distance":0.2245}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-acquires-splitbee","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/limits-and-pricing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics","via":"neighbor"},{"site":"vercel-docs","path":"/docs/analytics/using-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/custom-events-now-available-for-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/up-to-80-pricing-reduction-for-web-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-and-speed-insights-are-now-more-cost-efficient","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/enhanced-audience-metrics-now-available-in-vercel-analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-analytics-now-has-route-support","title":"Web Analytics now has route support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/analytics"},{"site":"vercel-docs","path":"/docs/analytics/filtering"},{"site":"vercel-docs","path":"/docs/analytics/package"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","distance":0.2838},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","distance":0.2934},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","distance":0.2964},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","distance":0.2969},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","distance":0.3015}],"related":[{"site":"vercel-web","path":"/blog/vercel-web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-analytics-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-analytics-api-is-now-available-for-all-frameworks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/filter-analytics-traffic-data","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-data-collection-for-web-analytics-and-speed-insights-with-resilient","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","title":"Web Application Firewall control now available with vercel.json","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/project-configuration"},{"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-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.1898},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","distance":0.2094},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.223},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","distance":0.2232},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","distance":0.2254}],"related":[{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deny-non-browser-traffic-or-blocklisted-asns","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/supporting-compliance-with-vercel-waf","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-custom-waf-rules-directly-from-the-vercel-firewall-tab","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/create-vercel-waf-custom-rules-using-natural-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-waf-rate-limiting-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-mitigated-traffic-is-free-on-vercel","title":"Firewall‑mitigated traffic is free on Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/vercel-firewall"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-is-now-free-for-firewall-mitigated-traffic"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","distance":0.183},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","distance":0.1904},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","distance":0.2001},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-is-now-free-for-firewall-mitigated-traffic","distance":0.2047},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","distance":0.2059}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-honeypot-with-vercel-web-application-firewall","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control","via":"neighbor"},{"site":"vercel-web","path":"/blog/preventing-infrastructure-abuse-with-vercel-firewall","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-the-vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/life-of-a-request-securing-your-apps-traffic-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-firewall/vercel-waf","via":"neighbor"},{"site":"vercel-web","path":"/blog/protecting-your-app-and-wallet-against-malicious-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/block-rate-limit-and-challenge-traffic-with-the-vercel-firewall","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-firewall-now-stops-ddos-attacks-up-to-40x-faster","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/microfrontends-routing-is-now-free-for-firewall-mitigated-traffic","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-traffic-visibility-on-firewall-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/web-application-firewall-control-now-available-with-vercel-json","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/web-interface-guidelines-now-available-as-an-agent-command","title":" Web Interface Guidelines now available as an agent command","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","distance":0.2628},{"site":"vercel-changelog","path":"/changelog/manage-vercel-microfrontends-with-ai-agents-and-the-cli","distance":0.3009},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","distance":0.3346},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.3428},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","distance":0.3441}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources","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":"vercel-changelog","path":"/changelog/vercel-agent-code-reviews-now-follow-your-code-guidelines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/manage-vercel-microfrontends-with-ai-agents-and-the-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-installation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cli-for-marketplace-integrations-optimized-for-agents","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/webhooks-are-now-generally-available","title":"Webhooks are now generally available","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","distance":0.1605},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","distance":0.2235},{"site":"vercel-docs","path":"/docs/webhooks","distance":0.2533},{"site":"vercel-changelog","path":"/changelog/new-webhook-events-for-domain-management","distance":0.2962},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","distance":0.3076}],"related":[{"site":"vercel-docs","path":"/docs/webhooks","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/webhooks/get-a-list-of-webhooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/configurable-webhooks","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/agent-resources/vercel-mcp/tools/integrations/get_webhooks","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-deploy-hooks","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/integration-webhooks-are-now-easier-to-configure","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/new-webhook-events-for-domain-management","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/subscribe-to-webhook-events-for-vercel-flags","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-cron-jobs-are-now-generally-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/webmcp-mcp-handler","title":"WebMCP support now available in mcp-handler","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","distance":0.242},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","distance":0.2982},{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","distance":0.2993},{"site":"vercel-shop","path":"/docs/anatomy/webmcp","distance":0.3125},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","distance":0.3131}],"related":[{"site":"vercel-shop","path":"/docs/anatomy/webmcp","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/generate-static-ai-sdk-tools-from-mcp-servers-with-mcp-to-ai-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-efficient-mcp-servers","via":"neighbor"},{"site":"vercel-docs","path":"/docs/mcp","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-second-wave-of-mcp-building-for-llms-not-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/latest-mcp-spec-now-supported-in-mcp-handler","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/oauth-support-added-to-mcp-adapter","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/nuxt-mcp-toolkit-mcp-apps","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/mcp-server-support-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/websocket-support-for-openai-responses-api-live-on-ai-gateway","title":"WebSocket support for OpenAI Responses API live on AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/websockets","distance":0.1827},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","distance":0.2159},{"site":"vercel-changelog","path":"/changelog/openresponses-api-now-supported-on-vercel-ai-gateway","distance":0.2435},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","distance":0.3006},{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses","distance":0.3077}],"related":[{"site":"vercel-docs","path":"/docs/ai-gateway/sdks-and-apis/responses/streaming","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/responses/text-generation","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/openresponses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-supports-openais-responses-api","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openresponses-api-now-supported-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-compatible-api-endpoints-now-supported-in-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-ultrafast-mode-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/openai-decisions-api-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-available-for-python-functions","title":"WebSocket support is now available for Python Functions","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/websockets"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-in-public-beta","distance":0.2193},{"site":"vercel-docs","path":"/docs/functions/websockets","distance":0.2616},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","distance":0.3333},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","distance":0.3346},{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","distance":0.3358}],"related":[{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/streaming-is-now-supported-in-vercel-functions-for-the-python-runtime","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-sdk-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/python-vercel-functions-now-have-streaming-enabled-by-default","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-python-queues-sdk-is-now-available-in-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-in-public-beta","title":"WebSocket support is now in Public Beta","summary":null,"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/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.2172},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-available-for-python-functions","distance":0.2193},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","distance":0.2461},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","distance":0.3019},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","distance":0.3047}],"related":[{"site":"vercel-kb","path":"/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/do-vercel-serverless-functions-support-websocket-connections","via":"neighbor"},{"site":"vercel-web","path":"/blog/serverless-servers-node-js-with-in-function-concurrency","via":"neighbor"},{"site":"vercel-web","path":"/blog/evolving-vercel-functions","via":"neighbor"},{"site":"vercel-web","path":"/blog/edge-functions-generally-available","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-functions-are-now-faster-and-powered-by-rust","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/websocket-support-is-now-available-for-python-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-edge-functions-are-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/rust-runtime-now-in-public-beta-for-vercel-functions","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-queues-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/edge-functions-are-now-available-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-custom-class-serialization","title":"Custom Class Serialization in Workflow SDK","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/api-reference/workflow-serde","distance":0.2598},{"site":"workflow","path":"/docs/foundations/serialization","distance":0.2864},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-serialize","distance":0.3136},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","distance":0.3357},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","distance":0.3831}],"related":[{"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-serde/workflow-serialize","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-serde/workflow-deserialize","via":"neighbor"},{"site":"workflow","path":"/docs/errors/serialization-failed","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-workflow","via":"neighbor"},{"site":"vercel-web","path":"/blog/inside-workflow-devkit-how-framework-integrations-work","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-web","path":"/blog/workflow-builder-build-your-own-workflow-automation-platform","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-encryption","title":"End-to-end encryption for Vercel Workflow","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/audit-log"}],"inbound":[],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/how-it-works/encryption","distance":0.1954},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","distance":0.341},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","distance":0.345},{"site":"vercel-docs","path":"/docs/workflows","distance":0.3629},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","distance":0.3664}],"related":[{"site":"workflow","path":"/docs/how-it-works/encryption","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"workflow","path":"/docs/observability","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/migrate-cloudflare-workflows-to-vercel-workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-workflow","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-security","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-a-durable-ai-code-agent-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/logs-filtering-for-vercel-workflows-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","title":"Workflow 4.1 Beta: Event-sourced architecture","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","distance":0.2555},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","distance":0.2795},{"site":"workflow","path":"/docs/whats-new","distance":0.3014},{"site":"vercel-docs","path":"/docs/workflows","distance":0.3079},{"site":"vercel-web","path":"/blog/workflow-builder-build-your-own-workflow-automation-platform","distance":0.3122}],"related":[{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"workflow","path":"/docs/whats-new","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-web","path":"/blog/workflow-builder-build-your-own-workflow-automation-platform","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows/concepts","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/versioning","via":"neighbor"},{"site":"vercel-web","path":"/blog/inside-workflow-devkit-how-framework-integrations-work","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-compresses-run-and-step-payloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-inflight-cancellation","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-compresses-run-and-step-payloads","title":"Workflow SDK now compresses run and step payloads","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","distance":0.3161},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","distance":0.3345},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","distance":0.3657},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-inflight-cancellation","distance":0.3744},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","distance":0.38}],"related":[{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"workflow","path":"/docs/comparisons/workflow-sdk-vs-cloudflare-workflows","via":"neighbor"},{"site":"workflow","path":"/docs/whats-new","via":"neighbor"},{"site":"vercel-web","path":"/blog/introducing-workflow","via":"neighbor"},{"site":"workflow","path":"/docs/performance","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-inflight-cancellation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","title":"Workflow SDK now runs natively in Nitro v3","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/internal/nitro-native-build","distance":0.1851},{"site":"workflow","path":"/docs/getting-started/nitro","distance":0.2777},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","distance":0.307},{"site":"workflow","path":"/docs/internal/nitro-web-ui","distance":0.309},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","distance":0.3129}],"related":[{"site":"workflow","path":"/docs/internal/nitro-native-build","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/nitro","via":"neighbor"},{"site":"workflow","path":"/docs/api-reference/workflow-nitro","via":"neighbor"},{"site":"workflow","path":"/docs/internal/nitro-web-ui","via":"neighbor"},{"site":"vercel-web","path":"/blog/inside-workflow-devkit-how-framework-integrations-work","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/react-router","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-compresses-run-and-step-payloads","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-tanstack-start","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-inflight-cancellation","title":"Workflow SDK now supports inflight cancellation","summary":null,"outbound":[],"inbound":[{"site":"workflow","path":"/docs/whats-new"}],"requires":[],"neighbors":[{"site":"workflow","path":"/docs/internal/serializable-abort-controller","distance":0.2412},{"site":"workflow","path":"/docs/foundations/cancellation","distance":0.2502},{"site":"workflow","path":"/docs/how-it-works/cancellation","distance":0.2914},{"site":"workflow","path":"/docs/errors/abort-signal-timeout-in-workflow","distance":0.3138},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","distance":0.315}],"related":[{"site":"workflow","path":"/docs/whats-new","via":"inbound"},{"site":"workflow","path":"/docs/internal/serializable-abort-controller","via":"neighbor"},{"site":"workflow","path":"/docs/foundations/cancellation","via":"neighbor"},{"site":"workflow","path":"/docs/how-it-works/cancellation","via":"neighbor"},{"site":"workflow","path":"/docs/errors/abort-signal-timeout-in-workflow","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-compresses-run-and-step-payloads","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-supports-tanstack-start","title":"Workflow SDK now supports TanStack Start","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/support-for-tanstack-start","distance":0.2325},{"site":"workflow","path":"/docs/getting-started/tanstack-start","distance":0.2406},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.3041},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","distance":0.3333},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","distance":0.3357}],"related":[{"site":"workflow","path":"/docs/getting-started/tanstack-start","via":"neighbor"},{"site":"vercel-docs","path":"/docs/workflows","via":"neighbor"},{"site":"vercel-web","path":"/blog/the-best-workflow-engine-is-a-programming-language","via":"neighbor"},{"site":"vercel-web","path":"/blog/inside-workflow-devkit-how-framework-integrations-work","via":"neighbor"},{"site":"workflow","path":"/docs/getting-started/vite","via":"neighbor"},{"site":"vercel-web","path":"/blog/a-new-programming-model-for-durable-execution","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-start-on-vercel-vs-cloudflare","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-tanstack-start","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-sdk-now-runs-natively-in-nitro-v3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-source-workflow-dev-kit-is-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/workflow-event-sourcing","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/workflow-steps-now-support-extended-function-durations","title":"Workflow steps now support extended function durations","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes"},{"site":"vercel-docs","path":"/docs/fluid-compute"},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-functions-can-now-run-up-to-30-minutes","distance":0.1748},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","distance":0.2519},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","distance":0.267},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","distance":0.3025},{"site":"vercel-docs","path":"/docs/functions/configuring-functions/duration","distance":0.311}],"related":[{"site":"vercel-docs","path":"/docs/workflows/pricing","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/higher-defaults-and-limits-for-vercel-functions-running-fluid-compute","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-functions-for-hobby-can-now-run-up-to-60-seconds","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/bun-runtime-now-supports-large-functions-and-extended-max-duration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/serverless-functions-can-now-run-up-to-5-minutes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-workflow-is-now-twice-as-fast","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/write-utilization-now-available-in-isr-observability","title":"Write utilization now available in ISR Observability","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration"},{"site":"vercel-docs","path":"/docs/observability/observability-plus"},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs"}],"inbound":[{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus"},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","distance":0.2602},{"site":"vercel-kb","path":"/kb/guide/how-to-reduce-isr-revalidation-costs","distance":0.3025},{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","distance":0.3034},{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","distance":0.3156},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","distance":0.3157}],"related":[{"site":"vercel-kb","path":"/kb/guide/multi-location-qsr-menus","via":"inbound"},{"site":"vercel-web","path":"/blog/vercel-supports-next-js-16-3","via":"inbound"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/limits-and-pricing","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-on-vercel-is-now-faster-and-more-cost-efficient","via":"neighbor"},{"site":"vercel-docs","path":"/docs/incremental-static-regeneration/quickstart","via":"neighbor"},{"site":"vercel-web","path":"/blog/isr-a-flexible-way-to-cache-dynamic-content","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/incremental-static-regeneration-is-now-faster-and-cheaper","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploys-are-now-up-to-33-faster-for-apps-with-many-isr-pages","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/request-collapsing-for-isr-cache-misses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-observability-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/detailed-usage-metrics-are-now-available","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","title":"xAI Grok audio models now available on Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/realtime"},{"site":"vercel-docs","path":"/docs/ai-gateway/getting-started/speech"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","distance":0.1442},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","distance":0.1443},{"site":"vercel-changelog","path":"/changelog/grok-voice-think-fast-2-0-now-available-on-ai-gateway","distance":0.1534},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","distance":0.1784},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","distance":0.1822}],"related":[{"site":"vercel-web","path":"/blog/realtime-voice-agents-on-ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/realtime-voice-speech-and-transcription-now-supported-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-voice-think-fast-2-0-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/xai-joins-the-vercel-marketplace","title":"xAI joins the Vercel Marketplace ","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","distance":0.0793},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","distance":0.0911},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","distance":0.1822},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","distance":0.1859},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.231}],"related":[{"site":"vercel-changelog","path":"/changelog/grok-3-now-available-on-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-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/xai","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-sdk-4-0","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/xai-grok-audio-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-4-1-fast-models-now-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/grok-build-0-1-now-available-on-vercel-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/yarn-2-dependency-caching-now-supported","title":"Yarn 2+ dependency caching now supported","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/builds/configure-a-build"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-a-build"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-2","distance":0.3021},{"site":"vercel-kb","path":"/kb/guide/does-vercel-support-yarn-4","distance":0.3218},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","distance":0.3263},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","distance":0.3273},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","distance":0.3356}],"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-kb","path":"/kb/guide/does-vercel-support-yarn-3","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/faster-build-times-for-monorepos","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-remote-cache-sdk-is-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-cache-storage-increased-for-larger-build-machines","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/builds-now-start-up-to-30-faster","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/you-can-now-configure-advanced-sampling-rules-for-vercel-drains","title":"You can now configure advanced sampling rules for Vercel Drains","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","distance":0.1996},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","distance":0.2235},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","distance":0.2273},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","distance":0.2447},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","distance":0.2454}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/using-drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/drains/reference/analytics","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/export-more-data-with-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-trace-drains-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/log-drains-are-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-log-drain-filtering","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/you-can-now-deploy-lovable-apps-to-vercel","title":"You can now deploy Lovable apps to Vercel","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/integrations/lovable","distance":0.1493},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","distance":0.2834},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2863},{"site":"vercel-web","path":"/blog/advanced-project-settings","distance":0.2931},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","distance":0.299}],"related":[{"site":"vercel-docs","path":"/docs/integrations/lovable","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-dev","via":"neighbor"},{"site":"vercel-web","path":"/blog/building-secure-and-performant-web-applications-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/build-output-api","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-hono-backends-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/support-for-elysia","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-is-now-available-in-stripe-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-to-vercel-from-terraform","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/you-can-now-invalidate-the-cdn-cache-by-providing-a-source-image","title":"You can now invalidate the CDN cache by providing a source image","summary":null,"outbound":[{"site":"vercel-changelog","path":"/changelog/faster-transformations-and-reduced-pricing-for-image-optimization"},{"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"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","distance":0.1586},{"site":"vercel-changelog","path":"/changelog/manually-purge-the-cdn-cache","distance":0.2226},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","distance":0.2462},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","distance":0.2733},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","distance":0.2752}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/caching/cdn-cache/purge","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/invalidate-the-cdn-cache-by-tag","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-changelog","path":"/changelog/manually-purge-the-cdn-cache","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercels-cdn-gets-a-new-dashboard-experience","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/stale-if-error-cache-control-header-is-now-supported","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/you-can-now-read-and-search-changelogs-from-the-cli","title":"You can now read and search changelogs from the CLI","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","distance":0.2464},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","distance":0.2841},{"site":"vercel-changelog","path":"/changelog/improvements-to-command-line-logs","distance":0.2894},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","distance":0.3006},{"site":"vercel-changelog","path":"/changelog/january-2023","distance":0.3011}],"related":[{"site":"vercel-changelog","path":"/changelog/vercel-logs-cli-command-now-optimized-for-agents-with-historical-log","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/september-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improvements-to-command-line-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/may-2022-papercuts","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/january-2023","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","title":"You can now view the Activity Log at a project-level","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/activity-log"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","distance":0.1637},{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","distance":0.242},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","distance":0.2975},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","distance":0.3073},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","distance":0.3175}],"related":[{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/improved-team-overview-page","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/activity-date-filtering-now-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-settings-are-now-searchable","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","title":"Z.ai's GLM-4.5 and GLM-4.5 Air are now supported in Vercel AI Gateway","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/ai-gateway"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","distance":0.1164},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","distance":0.1297},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","distance":0.1468},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","distance":0.1654},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","distance":0.1679}],"related":[{"site":"vercel-changelog","path":"/changelog/glm-4-7-available-on-vercel-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5.1-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-is-live-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-2-now-available-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/glm-5-3-now-available-on-ai-gateway","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","title":"Zero-configuration FastAPI backends","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","distance":0.131},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.1727},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","distance":0.1796},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","distance":0.2451},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","distance":0.258}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/fastapi-frontends-and-static-files-served-from-the-cdn","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-django-support","title":"Zero-configuration Django support","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","distance":0.2284},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","distance":0.253},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.2817},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","distance":0.2906},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2965}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/full-stack/django","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-fastapi-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/advanced-project-settings","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","title":"Zero-configuration Express backends","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/express"},{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.2257},{"site":"vercel-docs","path":"/docs/frameworks/backend/express","distance":0.2386},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","distance":0.2415},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2417},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.2451}],"related":[{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-express-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-express-starter-template","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-koa","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","title":"Zero-configuration Flask backends","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/flask"},{"site":"vercel-docs","path":"/docs/functions/runtimes/python"},{"site":"vercel-web","path":"/blog/framework-defined-infrastructure"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.131},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","distance":0.1806},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.2239},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","distance":0.2381},{"site":"vercel-changelog","path":"/changelog/zero-configuration-django-support","distance":0.253}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-flask-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-flask-starter-template","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-django-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","title":"Zero-configuration Go backend support","summary":null,"outbound":[{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel"}],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.1796},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","distance":0.1806},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2268},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","distance":0.2321},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.235}],"related":[{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend","via":"neighbor"},{"site":"vercel-docs","path":"/docs/functions/runtimes/go","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-koa","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","title":"Zero-configuration support for Fastify","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","distance":0.1727},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastify","distance":0.1751},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","distance":0.2032},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","distance":0.2239},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","distance":0.2257}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-fastify-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/fastapi","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-config-fastapi-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-koa","title":"Zero-configuration support for Koa","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/koa"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/koa","distance":0.1872},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","distance":0.2405},{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","distance":0.2457},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","distance":0.2619},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","distance":0.2641}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-koa-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","title":"Zero-configuration support for NestJS","summary":null,"outbound":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs"},{"site":"vercel-web","path":"/blog/introducing-active-cpu-pricing-for-fluid-compute"}],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nestjs","distance":0.1749},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.2032},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","distance":0.2268},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","distance":0.2346},{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","distance":0.2356}],"related":[{"site":"vercel-kb","path":"/kb/guide/ship-a-nestjs-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config-backends-on-vercel-ai-cloud","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-web","path":"/blog/vercel-services-run-full-stack-on-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-express-backends","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-flask-backends","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nitro","title":"Zero-configuration support for Nitro","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","distance":0.1951},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","distance":0.2268},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","distance":0.2459},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","distance":0.2481},{"site":"vercel-web","path":"/blog/zero-config","distance":0.2603}],"related":[{"site":"vercel-docs","path":"/docs/frameworks/backend/nitro","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ship-a-nitro-app-on-vercel","via":"neighbor"},{"site":"vercel-web","path":"/blog/zero-config","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/build-with-a-nitro-starter-template","via":"neighbor"},{"site":"vercel-web","path":"/blog/nuxt-on-vercel","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/nitro-vite-plugin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/frameworks/full-stack/tanstack-start","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/deploy-a-tanstack-start-app-to-vercel","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-nestjs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-support-for-fastify","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/zero-configuration-go-backend-support","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/deploy-node-servers-with-zero-configuration","via":"neighbor"}]},{"site":"vercel-changelog","path":"/changelog/zero-data-retention-no-prompt-training-on-ai-gateway","title":"Team-wide Zero Data Retention and prompt training controls now on AI Gateway","summary":null,"outbound":[],"inbound":[],"requires":[],"neighbors":[{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway","distance":0.0753},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","distance":0.1985},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","distance":0.2221},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","distance":0.2454},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","distance":0.2461}],"related":[{"site":"vercel-web","path":"/blog/zdr-on-ai-gateway","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/zdr","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/security-and-compliance/disallow-prompt-training","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/team-wide-provider-allowlist-on-ai-gateway","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-generally-available","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-logs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-gateway-is-now-in-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/z-ais-glm-4-5-and-glm-4-5-air-are-now-supported-in-vercel-ai-gateway","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"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users"}],"inbound":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci"},{"site":"vercel-changelog","path":"/changelog/auto-add-git-committers-to-your-team"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses"},{"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/teams"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_teams"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations/tanstack-ai"},{"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/sandbox/ecosystem/tanstack-ai"},{"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"},{"site":"vercel-kb","path":"/kb/guide/tanstack-ai-vercel-sandbox"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","distance":0.2127},{"site":"vercel-docs","path":"/docs/rbac/managing-team-members","distance":0.2183},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","distance":0.2224},{"site":"vercel-docs","path":"/docs/plans/pro-plan","distance":0.2387},{"site":"vercel-docs","path":"/docs/project-configuration/project-settings","distance":0.2444}],"related":[{"site":"turborepo","path":"/docs/crafting-your-repository/constructing-ci","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/auto-add-git-committers-to-your-team","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/new-token-formats-and-secret-scanning","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/tag-based-cache-invalidation-now-available-for-all-responses","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":"vercel-kb","path":"/kb/guide/tanstack-ai-vercel-sandbox","via":"inbound"},{"site":"v0","path":"/docs/teams","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-september-2020","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-delete-my-vercel-account","via":"neighbor"},{"site":"vercel-docs","path":"/docs/security/enterprise-managed-users-account-update","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/troubleshoot-project-collaboration","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"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployments"}],"inbound":[{"site":"vercel-docs","path":"/docs/rest-api/getting-started"},{"site":"vercel-docs","path":"/docs/security/security-dashboard"},{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token"}],"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.0847},{"site":"vercel-docs","path":"/docs/rest-api/getting-started","distance":0.1591},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","distance":0.1795},{"site":"vercel-docs","path":"/docs/cli/tokens","distance":0.2047},{"site":"vercel-docs","path":"/docs/rest-api/authentication/create-an-auth-token","distance":0.2189}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-do-i-use-a-vercel-api-access-token","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/project-scoped-tokens","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/getting-started","via":"neighbor"},{"site":"vercel-docs","path":"/docs/sign-in-with-vercel/scopes-and-permissions","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-docs","path":"/docs/rest-api/access-groups/create-an-access-group-project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/activity-log","title":"Using the 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-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains"},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level"},{"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/security/attestations-and-compliance-report"},{"site":"vercel-docs","path":"/docs/spend-management"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables"}],"requires":[],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","distance":0.2066},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","distance":0.2475},{"site":"vercel-docs","path":"/docs/audit-log","distance":0.281},{"site":"vercel-docs","path":"/docs/rest-api/microfrontends/list-projects-in-a-microfrontends-group","distance":0.2887},{"site":"vercel-docs","path":"/docs/rest-api/projects/update-the-microfrontends-settings","distance":0.2912}],"related":[{"site":"vercel-changelog","path":"/changelog/activity-log-now-available-in-vercel-cli","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/activity-log-now-tracks-100-of-team-and-project-changes","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/expanded-audit-log-coverage-now-delivered-through-vercel-drains","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/you-can-now-view-the-activity-log-at-a-project-level","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/how-to-add-vercel-environment-variables","via":"inbound"},{"site":"vercel-web","path":"/blog/changelog-june-2020","via":"neighbor"},{"site":"vercel-web","path":"/blog/changelog-july-2020","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-user-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/user/list-event-types","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/projects/update-the-microfrontends-settings","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/projects/delete-a-project-avatar","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"},{"site":"vercel-docs","path":"/docs/agent/private-dependencies"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click"},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent"},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews"},{"site":"vercel-changelog","path":"/changelog/vercel-agent-has-updated-pricing"},{"site":"vercel-docs","path":"/docs/agent/pr-review"},{"site":"vercel-docs","path":"/docs/glossary"},{"site":"vercel-docs","path":"/docs/products"},{"site":"vercel-docs","path":"/docs/projects"},{"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-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","distance":0.149},{"site":"vercel-kb","path":"/kb/guide/vercel-agent","distance":0.1557},{"site":"vercel-web","path":"/blog/vercel-agent","distance":0.1611},{"site":"vercel-docs","path":"/docs/agent/installation","distance":0.1681},{"site":"vercel-docs","path":"/docs/agent/pr-review","distance":0.1792}],"related":[{"site":"vercel-changelog","path":"/changelog/an-expanded-vercel-agent-chat-investigations-and-approved-actions-now-in-public-beta","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/apply-code-suggestions-from-vercel-agent-with-one-click","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/automatic-build-fix-suggestions-with-vercel-agent","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/native-deployment-checks","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/on-demand-vercel-agent-code-reviews","via":"inbound"},{"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":"vercel-kb","path":"/kb/guide/vercel-vs-northflank","via":"inbound"},{"site":"vercel-web","path":"/blog/introducing-vercel-for-slack","via":"neighbor"},{"site":"vercel-docs","path":"/docs/glossary","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/agent-resources","title":"Agent Resources","summary":"Set up AI coding tools with Vercel documentation, reusable skills, and secure access to projects, deployments, and logs.","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-docs","path":"/docs/getting-started-with-vercel","distance":0.1422},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","distance":0.175},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","distance":0.1783},{"site":"vercel-docs","path":"/docs/agent-resources/skills","distance":0.1868},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.1911}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"ai-sdk","path":"/docs/getting-started/coding-agents","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"v0","path":"/docs/agentic-features","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-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","title":"Build with AI agents on Vercel","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"},{"site":"vercel-kb","path":"/kb/guide/vercel-connect"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","distance":0.113},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1247},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","distance":0.1595},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","distance":0.1692},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1819}],"related":[{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ship-ai-2025-recap","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/agent-resources/integrations-for-models/xai","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","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","title":"Build with AI on Vercel","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.098},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1138},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.1247},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1428},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.1457}],"related":[{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-agents-and-services-on-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/xai-and-vercel-partner-to-bring-zero-friction-ai-to-developers","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/ai-integration-and-playground-in-the-vercel-dashboard","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.098},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.0989},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1783},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.1844},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1846}],"related":[{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"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/agent-resources/integrations-for-agents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/integrations","via":"inbound"}]},{"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.0989},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1138},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1466},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1803},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-agents","distance":0.1819}],"related":[{"site":"vercel-changelog","path":"/changelog/groq-fal-and-deepinfra-join-the-vercel-marketplace","via":"neighbor"},{"site":"vercel-web","path":"/blog/ai-integrations","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/togetherai","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/deepinfra","title":"Vercel Deep Infra Integration","summary":"Learn how to add the Deep Infra native integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/install"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.1551},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1593},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1696},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","distance":0.1726},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1803}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","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/groq","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","title":"Vercel ElevenLabs Integration","summary":"Learn how to add the ElevenLabs connectable account integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1515},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","distance":0.1647},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.165},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.1701},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.181}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","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/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":"Vercel fal Integration","summary":"Learn how to add the fal native integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/install"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1551},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1678},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.1701},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1838},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","distance":0.1962}],"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/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","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/groq","title":"Vercel Groq Integration","summary":"Learn how to add the Groq native integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/install"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1726},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1855},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.1891},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1927},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.1962}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","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/agent-resources/integrations-for-models/elevenlabs","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/fal","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/lmnt","title":"Vercel LMNT Integration","summary":"Learn how to add LMNT connectable account integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.1647},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2074},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.2222},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.2256},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","distance":0.234}],"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/agent-resources/integrations-for-models/fal","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/openai","title":"Vercel & OpenAI Integration","summary":"Integrate your Vercel project with OpenAI's powerful suite of models.","outbound":[{"site":"ai-sdk","path":"/docs/foundations/tools"},{"site":"ai-sdk","path":"/docs/getting-started/nextjs-app-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":"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1495},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1728},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1878},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-model","distance":0.1972},{"site":"vercel-web","path":"/blog/ai-integrations","distance":0.2062}],"related":[{"site":"vercel-web","path":"/blog/ai-integrations","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-ai-app","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/build-with-openai-agents-api-on-vercel","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/adding-a-model","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/ecosystem/framework-integrations","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":"Vercel Perplexity Integration","summary":"Learn how to add Perplexity connectable account integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.1844},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1958},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1986},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone","distance":0.2068},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.2071}],"related":[{"site":"vercel-kb","path":"/kb/guide/using-coding-agents-to-procure-vercel-marketplace-integrations","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/deepinfra","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/fal","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/pinecone","title":"Vercel Pinecone Integration","summary":"Learn how to add Pinecone connectable account integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1989},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.2057},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/perplexity","distance":0.2068},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate","distance":0.218},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.2198}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","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/perplexity","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/togetherai","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/replicate","title":"Vercel Replicate Integration","summary":"Learn how to add Replicate connectable account integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.1857},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1994},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.2003},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.2008},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.2094}],"related":[{"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/deepinfra","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/togetherai","title":"Vercel Together AI Integration","summary":"Learn how to add Together AI connectable account integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","distance":0.1359},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.165},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1673},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1696},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","distance":0.1838}],"related":[{"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/deepinfra","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/adding-a-model","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/xai","title":"Vercel xAI Integration","summary":"Learn how to add the xAI native integration with Vercel.","outbound":[{"site":"vercel-docs","path":"/docs/cli"},{"site":"vercel-docs","path":"/docs/cli/env"},{"site":"vercel-docs","path":"/docs/cli/install"}],"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"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","distance":0.1359},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models","distance":0.1428},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/adding-a-provider","distance":0.1466},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/elevenlabs","distance":0.1515},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/deepinfra","distance":0.1593}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/togetherai","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/deepinfra","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/integrations-for-models/fal","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access","title":"Markdown and Agent Discovery","summary":"Learn how Vercel serves documentation to AI agents as Markdown and helps them discover related pages through content negotiation, discovery indexes, and a cross-link graph.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin"},{"site":"vercel-docs","path":"/docs/rest-api"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.175},{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","distance":0.1988},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","distance":0.2159},{"site":"vercel-changelog","path":"/changelog/docs-pages-support-markdown-responses","distance":0.2539},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2598}],"related":[{"site":"vercel-kb","path":"/kb/guide/how-to-serve-documentation-for-agents","via":"neighbor"},{"site":"vercel-web","path":"/blog/making-agent-friendly-pages-with-content-negotiation","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/docs-pages-support-markdown-responses","via":"neighbor"},{"site":"vercel-shop","path":"/docs/anatomy/aeo-geo","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/agentic-commerce-readiness","via":"neighbor"},{"site":"nextjs","path":"/docs/community/contribution-guide","via":"neighbor"},{"site":"ai-sdk","path":"/docs/advanced/vercel-deployment-guide","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/open-vercel-documentation-pages-in-ai-providers","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","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":"Agent 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/flags/vercel-flags/quickstart"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","distance":0.1721},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.1868},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent","distance":0.1918},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","distance":0.1943},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","distance":0.1979}],"related":[{"site":"vercel-kb","path":"/kb/guide/agent-skills-creating-installing-and-sharing-reusable-agent-context","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/tanstack-intent","via":"neighbor"},{"site":"vercel-web","path":"/blog/agent-skills-explained-an-faq","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/ai-sdk-skill-uploads","via":"neighbor"},{"site":"nextjs","path":"/docs/app/guides/ai-agents","via":"neighbor"},{"site":"eve","path":"/docs/skills","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/introducing-skills-the-open-agent-skills-ecosystem","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/adding-keyboard-shortcuts-to-react-apps-with-tanstack-hotkeys","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/skills-v1-1-1-interactive-discovery-open-source-release-and-agent-support","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-plugin","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/flags/vercel-flags/quickstart","via":"inbound"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","title":"Use Vercel","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"},{"site":"vercel-kb","path":"/kb/guide/software-factory-vercel-mcp"},{"site":"vercel-web","path":"/blog/building-secure-ai-agents"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-purchases"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp"},{"site":"vercel-docs","path":"/docs/agent-resources"},{"site":"vercel-docs","path":"/docs/agent-resources/markdown-access"},{"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-docs","path":"/docs/mcp/integrations"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel"},{"site":"vercel-kb","path":"/kb/guide/software-factory-vercel-mcp"},{"site":"vercel-web","path":"/blog/agentic-infrastructure"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","distance":0.1424},{"site":"vercel-docs","path":"/docs/mcp/deploy-mcp-servers-to-vercel","distance":0.1641},{"site":"vercel-docs","path":"/docs/mcp","distance":0.2009},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","distance":0.2087},{"site":"vercel-kb","path":"/kb/guide/using-xmcp-with-nextjs","distance":0.2138}],"related":[{"site":"vercel-web","path":"/blog/introducing-vercel-mcp-connect-vercel-to-your-ai-tools","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-can-now-deploy-code","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-purchases","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercel-mcp-now-supports-the-2026-07-28-mcp-specification","via":"inbound"},{"site":"vercel-changelog","path":"/changelog/vercels-mcp","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/cls-on-vercel","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/mcp-server-chatgpt-connector","via":"inbound"},{"site":"vercel-kb","path":"/kb/guide/reduce-image-optimization-costs-on-vercel","via":"inbound"},{"site":"vercel-web","path":"/blog/agentic-infrastructure","via":"inbound"},{"site":"vercel-web","path":"/blog/model-context-protocol-mcp-explained","via":"neighbor"},{"site":"v0","path":"/docs/api/v1/adapters/mcp-server","via":"neighbor"},{"site":"vercel-kb","path":"/kb/guide/how-to-build-an-mcp-server-with-nuxt","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools","title":"Tools","summary":"Explore Vercel MCP tools for projects, deployments, domains, sandboxes, and more.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/web_fetch_vercel_url"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_runtime_errors"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_runtime_logs"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/list_projects"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_teams"},{"site":"vercel-docs","path":"/docs/cli"}],"inbound":[{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"ai-sdk","path":"/docs/foundations/tools","distance":0.2362},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp","distance":0.2511},{"site":"vercel-docs","path":"/docs/integrations/install-an-integration/agent-tools","distance":0.2542},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","distance":0.2607},{"site":"vercel-docs","path":"/docs/agent-resources","distance":0.2609}],"related":[{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"inbound"},{"site":"ai-sdk","path":"/docs/foundations/tools","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/integrations/install-an-integration/agent-tools","via":"neighbor"},{"site":"vercel-docs","path":"/docs/getting-started-with-vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/ai-gateway/inputs-and-tools/tool-use","via":"neighbor"},{"site":"vercel-docs","path":"/docs/products","via":"neighbor"},{"site":"vercel-docs","path":"/docs/vercel-toolbar","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","title":"Access Groups","summary":"Vercel MCP tools for access groups.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","distance":0.1041},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","distance":0.1325},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","distance":0.1549},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1589},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_access_group_project","distance":0.1647}],"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/list-projects-of-an-access-group","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/access-groups/reads-an-access-group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","title":"list_access_group_members","summary":"Use list_access_group_members with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","distance":0.1119},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","distance":0.1549},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","distance":0.16},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_team_members","distance":0.1776},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","distance":0.1979}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_team_members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-members-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_access_group","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","title":"list_access_group_projects","summary":"Use list_access_group_projects with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","distance":0.1099},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","distance":0.1325},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","distance":0.16},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1902},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/list_projects","distance":0.2053}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/list_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_observability_configuration_projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","title":"list_access_groups","summary":"Use list_access_groups with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","distance":0.1041},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","distance":0.1099},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","distance":0.1119},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-access-groups-for-a-team-project-or-member","distance":0.1656},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/list-projects-of-an-access-group","distance":0.1841}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_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/list-projects-of-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/agent-resources/vercel-mcp/tools/access-groups/read_access_group","title":"read_access_group","summary":"Use read_access_group with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_access_group_project","distance":0.1273},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","distance":0.1783},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group","distance":0.1906},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","distance":0.2232},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.2319}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_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/agent-resources/vercel-mcp/tools/access-groups/list_access_group_members","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_access_group_project","title":"read_access_group_project","summary":"Use read_access_group_project with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_access_group","distance":0.1273},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups","distance":0.1647},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","distance":0.1679},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","distance":0.2094},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project","distance":0.2118}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/read_access_group","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/access-groups/reads-an-access-group-project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_groups","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","title":"Agent Runs","summary":"Vercel MCP tools for agent runs.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","distance":0.1017},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","distance":0.1272},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","distance":0.1391},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","distance":0.1476},{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.1935}],"related":[{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vercel-ci/list-task-runs-for-a-job-run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/traces","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","title":"get_agent_run","summary":"Use get_agent_run with Vercel MCP.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","distance":0.097},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","distance":0.1279},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.1476},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","distance":0.2518},{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.2728}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","via":"neighbor"},{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vercel-ci/list-task-runs-for-a-job-run","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","title":"get_agent_run_trace","summary":"Use get_agent_run_trace with Vercel MCP.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.1272},{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.2465},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","distance":0.2518},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","distance":0.2537},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","distance":0.3004}],"related":[{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/eve-agent-observability","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/search-trace-spans-from-the-vercel-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing/session-tracing","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/traces","via":"neighbor"},{"site":"vercel-docs","path":"/docs/tracing","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","title":"list_agent_run_projects","summary":"Use list_agent_run_projects with Vercel MCP.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","distance":0.0789},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","distance":0.1279},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.1391},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/list_projects","distance":0.2309},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_observability_configuration_projects","distance":0.2826}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/list_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_observability_configuration_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/access-groups/list_access_group_projects","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_runs","title":"list_agent_runs","summary":"Use list_agent_runs with Vercel MCP.","outbound":[{"site":"eve","path":"/docs/guides/deployment/vercel"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","distance":0.0789},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","distance":0.097},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs","distance":0.1017},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","distance":0.2537},{"site":"vercel-docs","path":"/docs/eve/agent-runs","distance":0.2546}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/list_agent_run_projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-vercel-mcp-cli","via":"neighbor"},{"site":"eve","path":"/docs/observability/agent-runs","via":"neighbor"},{"site":"vercel-changelog","path":"/changelog/agent-runs-now-show-subagent-activity-on-eve-projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/agent-runs/get_agent_run_trace","via":"neighbor"},{"site":"vercel-docs","path":"/docs/eve/agent-runs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/vercel-ci/list-task-runs-for-a-job-run","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing","title":"Billing and Purchases","summary":"Vercel MCP tools for billing and purchases.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_domain_order"},{"site":"vercel-docs","path":"/docs/domains"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote","distance":0.1289},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain","distance":0.1698},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains","distance":0.2134},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","distance":0.2419},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_billing_charges","distance":0.2436}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/buy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain","title":"buy_domain","summary":"Use buy_domain with Vercel MCP.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_domain_order"},{"site":"vercel-docs","path":"/docs/domains"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_single_domain"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote","distance":0.1323},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing","distance":0.1698},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains","distance":0.1849},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","distance":0.2015},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_single_domain","distance":0.2109}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_single_domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_domain_order","title":"get_domain_order","summary":"Use get_domain_order with Vercel MCP.","outbound":[],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_order","distance":0.1264},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain","distance":0.2234},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","distance":0.2312},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote","distance":0.2481},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain","distance":0.2548}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_order","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_purchase_quote","title":"get_purchase_quote","summary":"Use get_purchase_quote with Vercel MCP.","outbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/get_domain_order"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_single_domain"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing","distance":0.1289},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/buy_domain","distance":0.1323},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","distance":0.1571},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains","distance":0.2023},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_single_domain","distance":0.2338}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain_price","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_domains","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/buy_single_domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_domain","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/get_bulk_price","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_billing_charges","title":"list_billing_charges","summary":"Use list_billing_charges with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","distance":0.1911},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing","distance":0.2436},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_contract_commitments","distance":0.2704},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/get_rolling_release_billing_status","distance":0.2723},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/integrations/list_integration_billing_plans","distance":0.3047}],"related":[{"site":"vercel-changelog","path":"/changelog/access-billing-usage-cost-data-api","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-billing-charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_contract_commitments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/get_rolling_release_billing_status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/integrations/list_integration_billing_plans","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/usage","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_contract_commitments","title":"list_contract_commitments","summary":"Use list_contract_commitments with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","distance":0.2172},{"site":"vercel-docs","path":"/docs/cli/contract","distance":0.2389},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_billing_charges","distance":0.2704},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_event_types","distance":0.2732},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/get_rolling_release_billing_status","distance":0.2829}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/billing/list-focus-contract-commitments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/contract","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/billing/list_billing_charges","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/list_event_types","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/get_rolling_release_billing_status","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","title":"Caching","summary":"Vercel MCP tools for caching.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.1949},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","distance":0.2008},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.2123},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","distance":0.2217},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","distance":0.2327}],"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/record-an-artifacts-cache-usage-event","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/delete-all-cache-artifacts","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/artifact_query","title":"artifact_query","summary":"Use artifact_query with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","distance":0.1832},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/create_observability_query","distance":0.216},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","distance":0.2356},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","distance":0.2576},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/record_events","distance":0.2641}],"related":[{"site":"turborepo","path":"/docs/openapi/artifacts/artifact-query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/create_observability_query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/record_events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/get_remote_cache_status","title":"get_remote_cache_status","summary":"Use get_remote_cache_status with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/get-status-of-remote-caching-for-this-principal","distance":0.2039},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/get_team","distance":0.2777},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","distance":0.2855},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/get_rolling_release_billing_status","distance":0.287},{"site":"turborepo","path":"/docs/openapi/artifacts/status","distance":0.2911}],"related":[{"site":"turborepo","path":"/docs/openapi/artifacts/status","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/agent-resources/vercel-mcp/tools/teams/get_team","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/get_rolling_release_billing_status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/firewall/get_active_attack_status","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/check-if-a-cache-artifact-exists","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/invalidate_by_src_images","title":"invalidate_by_src_images","summary":"Use invalidate_by_src_images with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/invalidate_by_tags","distance":0.1598},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","distance":0.1889},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-source-image","distance":0.3067},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","distance":0.3424},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/update_project","distance":0.3564}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/invalidate_by_tags","via":"neighbor"},{"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-source-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/update_project","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/invalidate_by_tags","title":"invalidate_by_tags","summary":"Use invalidate_by_tags with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/invalidate_by_src_images","distance":0.1598},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-tag","distance":0.1777},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/dangerously-delete-by-tag","distance":0.2956},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","distance":0.3062},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/update_project_protection_bypass","distance":0.3462}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/invalidate_by_src_images","via":"neighbor"},{"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-tag","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/edge-cache/invalidate-by-source-image","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/update_project_protection_bypass","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/record_events","title":"record_events","summary":"Use record_events with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","distance":0.1821},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","distance":0.2412},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/artifact_query","distance":0.2641},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","distance":0.2764},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/update_record","distance":0.3093}],"related":[{"site":"turborepo","path":"/docs/openapi/artifacts/record-events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/record-an-artifacts-cache-usage-event","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/artifact_query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/update_record","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/domains/create_record","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/upload_artifact","title":"upload_artifact","summary":"Use upload_artifact with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","distance":0.1563},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching","distance":0.2008},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","distance":0.2303},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/artifact_query","distance":0.2356},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/upload_file","distance":0.2406}],"related":[{"site":"turborepo","path":"/docs/openapi/artifacts/upload-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/upload-a-cache-artifact","via":"neighbor"},{"site":"turborepo","path":"/docs/openapi/artifacts","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/download-a-cache-artifact","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/caching/artifact_query","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/upload_file","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/artifacts/query-information-about-an-artifact","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/checks","title":"Checks","summary":"Vercel MCP tools for checks.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/checks/rerequest_check","distance":0.0817},{"site":"vercel-docs","path":"/docs/checks/checks-api","distance":0.1911},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-runs-for-a-check","distance":0.2381},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.2384},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/create-a-check-run","distance":0.2387}],"related":[{"site":"vercel-docs","path":"/docs/checks/checks-api","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/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/agent-resources/vercel-mcp/tools/checks/rerequest_check","title":"rerequest_check","summary":"Use rerequest_check with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/checks","distance":0.0817},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","distance":0.3019},{"site":"vercel-docs","path":"/docs/checks/checks-api","distance":0.3028},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/list-check-runs-for-a-deployment","distance":0.3107},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/delete-a-check","distance":0.3109}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check","via":"neighbor"},{"site":"vercel-docs","path":"/docs/checks/checks-api","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","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/checks-v2/update-a-check-run","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments","title":"Deployments","summary":"Vercel MCP tools for deployments.","outbound":[{"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"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","distance":0.1823},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_events","distance":0.2105},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.2265},{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-events","distance":0.2353},{"site":"vercel-docs","path":"/docs/deployments","distance":0.2366}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-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/agent-resources/vercel-mcp/tools/projects","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/cancel_deployment","title":"cancel_deployment","summary":"Use cancel_deployment with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/create_deployment","distance":0.2304},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/request_rollback","distance":0.2331},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","distance":0.2423},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","distance":0.2697},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","distance":0.2748}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/create_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/request_rollback","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/delete-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/create_deployment","title":"create_deployment","summary":"Use create_deployment with Vercel MCP.","outbound":[{"site":"vercel-docs","path":"/docs/deployments"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/deploy_to_vercel","distance":0.191},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/cancel_deployment","distance":0.2304},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/create_project","distance":0.2383},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/request_promote","distance":0.2446},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","distance":0.2457}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/create","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/deploy_to_vercel","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/cancel_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/create_project","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/rolling-releases/request_promote","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/deploy_to_vercel","title":"deploy_to_vercel","summary":"Use deploy_to_vercel with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/create_deployment","distance":0.191},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","distance":0.1996},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/open_deployments","distance":0.2269},{"site":"vercel-docs","path":"/docs/cli/deploy","distance":0.2332},{"site":"vercel-docs","path":"/docs/cli/redeploy","distance":0.2332}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/create_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploying-from-cli","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/open_deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/deploy","via":"neighbor"},{"site":"vercel-docs","path":"/docs/cli/redeploy","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_access_to_vercel_url","title":"get_access_to_vercel_url","summary":"Use get_access_to_vercel_url with Vercel MCP.","outbound":[{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"}],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/web_fetch_vercel_url","distance":0.1897},{"site":"vercel-docs","path":"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links","distance":0.2691},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project_deletion_link","distance":0.2799},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","distance":0.2802},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project_deployment_protection","distance":0.2803}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/web_fetch_vercel_url","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project_deletion_link","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/projects/get_project_deployment_protection","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/teams/get_team","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","title":"get_deployment","summary":"Use get_deployment with Vercel MCP.","outbound":[{"site":"vercel-docs","path":"/docs/deployments"}],"inbound":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools"}],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_file_contents","distance":0.1712},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","distance":0.1873},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","distance":0.2075},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_git_deployment_context","distance":0.2121},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_feature_flags","distance":0.2126}],"related":[{"site":"v0","path":"/docs/api/v1/reference/deployments/get-by-id","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_file_contents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_git_deployment_context","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_feature_flags","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_build_logs","title":"get_deployment_build_logs","summary":"Use get_deployment_build_logs with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_events","distance":0.1897},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/ui_get_build_log_excerpt","distance":0.2126},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_runtime_logs","distance":0.287},{"site":"vercel-docs","path":"/docs/deployments/logs","distance":0.2919},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments","distance":0.2943}],"related":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_events","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/ui_get_build_log_excerpt","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/observability/get_runtime_logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/deployments/logs","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployments","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_feature_flags","title":"get_deployment_feature_flags","summary":"Use get_deployment_feature_flags with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/retrieve-the-feature-flags-of-a-deployment","distance":0.1672},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","distance":0.2126},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","distance":0.215},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_file_contents","distance":0.2216},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/feature-flags/get_flag_settings","distance":0.2482}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/feature-flags/retrieve-the-feature-flags-of-a-deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_file_contents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/feature-flags/get_flag_settings","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_file_contents","title":"get_deployment_file_contents","summary":"Use get_deployment_file_contents with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","distance":0.1402},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","distance":0.1629},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","distance":0.1712},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_feature_flags","distance":0.2216},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","distance":0.2435}],"related":[{"site":"vercel-docs","path":"/docs/rest-api/deployments/get-deployment-file-contents","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/list_deployment_files","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment","via":"neighbor"},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_deployment_feature_flags","via":"neighbor"},{"site":"vercel-docs","path":"/docs/rest-api/deployments/list-deployment-files","via":"neighbor"}]},{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deployments/get_git_deployment_context","title":"get_git_deployment_context","summary":"Use get_git_deployment_context with Vercel MCP.","outbound":[],"inbound":[],"requires":[{"site":"vercel-docs","path":"/docs/agent-resources"}],"neighbors":[{"site":"vercel-docs","path":"/docs/agent-resources/vercel-mcp/tools/deploymen