<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd" -->

---
title: Making navigations instant in v0 | daily.dev
description: Next.js 16.3 introduces instant page navigations for dynamic apps using runtime partial prerendering and browser-side caching, without requiring client-side...
canonical: https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Making navigations instant in v0 | daily.dev
og:description: Next.js 16.3 introduces instant page navigations for dynamic apps using runtime partial prerendering and browser-side caching, without requiring client-side...
og:url: https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd
og:image: https://api.daily.dev/og/posts/I3UEgXVpd.png
og:image:alt: Making navigations instant in v0
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Making navigations instant in v0

**[Next.js](https://daily.dev/sources/next)** · 9 min read · 0 upvotes · 0 comments

## Summary

Next.js 16.3 introduces instant page navigations for dynamic apps using runtime partial prerendering and browser-side caching, without requiring client-side data fetching. The Vercel team applied this to v0 using an AI coding agent loop: the agent wrote failing Playwright tests using a new `instant()` test helper, applied code fixes (primarily moving dynamic data fetches behind Suspense boundaries), and iterated until tests passed. The result was 16 new regression tests and instant navigations across v0's homepage, chat, and settings pages. The `next-cache-components-optimizer` Skill is available for others to run the same process on their own apps.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://nextjs.org/blog/making-v0-navigations-instant>

## Questions this post answers

### How does the instant() Playwright test helper in Next.js 16.3 work?

The instant() helper, shipped with @next/playwright in Next.js 16.3, pauses a navigation and asserts which parts of the UI are visible to the user without any network request. If expected content is blocked waiting on the network, the test fails, letting developers or agents deterministically verify that a navigation is instant rather than eyeballing it manually.

_Developers tracking new Next.js testing primitives can follow release breakdowns like this on daily.dev._

### How did Vercel make v0's page navigations instant using Next.js 16.3?

Vercel ran a coding agent in a loop using the next-cache-components-optimizer Skill: for each slow navigation (like clicking New Chat or viewing settings), the agent wrote a failing instant() test, applied fixes such as moving dynamic data fetching below a Suspense boundary, reran the test, and repeated until it passed. This produced 16 new regression tests and turned the homepage, chat detail page, and settings subpages from blocking to instant.

_Teams weighing agent-driven refactors against manual optimization can compare real case studies like this on daily.dev._

### What is the difference between static Partial Prerendering and the new Cache Components approach in Next.js 16.3?

Static Partial Prerendering required prerendering pages entirely at build time, which is impractical for dynamic, personalized apps. Next.js 16.3 instead lets apps prerender dynamic content at runtime while users browse, caching it in the browser, using Suspense boundaries or 'use cache' to mark prerenderable UI without needing to fully render the target page ahead of time.

_Developers deciding how to architect dynamic rendering in Next.js can dig into comparisons like this on daily.dev._

## Similar posts on daily.dev

- [Next.js 16.3: Instant Navigations](https://daily.dev/posts/next-js-16-3-instant-navigations-80ncbhrrp) · Next.js · 138 upvotes · 16 comments
- [Next.js 16.3: Instant Navigations, Up to 90% Less Dev Memory and Faster Builds](https://daily.dev/posts/next-js-16-3-instant-navigations-up-to-90-less-dev-memory-and-faster-builds-abksajvqx) · InfoQ · 3 upvotes · 1 comments

---

Tags: [#react](https://daily.dev/tags/react), [#ai-agents](https://daily.dev/tags/ai-agents), [#nextjs](https://daily.dev/tags/nextjs)

[View this post on daily.dev](https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Making navigations instant in v0","url":"https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd"},"datePublished":"2026-08-07T00:28:22.011Z","dateModified":"2026-09-13T19:31:17.190Z","description":"Next.js 16.3 introduces instant page navigations for dynamic apps using runtime partial prerendering and browser-side caching, without requiring client-side...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/850a3b8696396d21c9ad2dccfc0988e0?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/850a3b8696396d21c9ad2dccfc0988e0?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Next.js","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Next.js","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a7460ee33d92486cb5afd0fca36a116d","url":"https://daily.dev/sources/next"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"react,ai-agents,nextjs","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Next.js","item":"https://daily.dev/sources/next"},{"@type":"ListItem","position":3,"name":"Making navigations instant in v0"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/making-navigations-instant-in-v0-i3uegxvpd#faq","mainEntity":[{"@type":"Question","name":"How does the instant() Playwright test helper in Next.js 16.3 work?","acceptedAnswer":{"@type":"Answer","text":"The instant() helper, shipped with @next/playwright in Next.js 16.3, pauses a navigation and asserts which parts of the UI are visible to the user without any network request. If expected content is blocked waiting on the network, the test fails, letting developers or agents deterministically verify that a navigation is instant rather than eyeballing it manually. Developers tracking new Next.js testing primitives can follow release breakdowns like this on daily.dev."}},{"@type":"Question","name":"How did Vercel make v0's page navigations instant using Next.js 16.3?","acceptedAnswer":{"@type":"Answer","text":"Vercel ran a coding agent in a loop using the next-cache-components-optimizer Skill: for each slow navigation (like clicking New Chat or viewing settings), the agent wrote a failing instant() test, applied fixes such as moving dynamic data fetching below a Suspense boundary, reran the test, and repeated until it passed. This produced 16 new regression tests and turned the homepage, chat detail page, and settings subpages from blocking to instant. Teams weighing agent-driven refactors against manual optimization can compare real case studies like this on daily.dev."}},{"@type":"Question","name":"What is the difference between static Partial Prerendering and the new Cache Components approach in Next.js 16.3?","acceptedAnswer":{"@type":"Answer","text":"Static Partial Prerendering required prerendering pages entirely at build time, which is impractical for dynamic, personalized apps. Next.js 16.3 instead lets apps prerender dynamic content at runtime while users browse, caching it in the browser, using Suspense boundaries or 'use cache' to mark prerenderable UI without needing to fully render the target page ahead of time. Developers deciding how to architect dynamic rendering in Next.js can dig into comparisons like this on daily.dev."}}]}
```

