Browser Navigation API Replaces History API Across Chrome, Firefox, and Safari

The Navigation API has officially reached Baseline Newly Available status as of January 2026. Support now ships in Chrome, Edge, Firefox 147, and Safari 26.2, making the Navigation API browser baseline a milestone web developers have long awaited.
The new API replaces the History API, which has been the primary routing mechanism for single-page applications (SPAs) for over a decade. That older approach had well-known problems. It could not detect all navigation triggers, offered no way to read the full history stack, and its popstate event behaved inconsistently. As noted in the Chrome for Developers documentation, former HTML spec editor Ian Hickson once called pushState() his “favourite mistake.”
The Navigation API, by contrast, was built from scratch as a complete replacement, not a patch.
At the center of the new API is the navigate event. It fires for every type of navigation: link clicks, form submissions, back/forward presses, and programmatic calls. This replaces the fragmented old approach, where developers wired up click listeners, handled popstate separately, and manually managed dozens of edge cases.
The event.intercept() method then handles URL updates, history stack management, and accessibility tasks like focus automatically. Additionally, the API ships with built-in scroll restoration, abort signals for cancelled navigations, and navigatesuccess/navigateerror events for centralized error handling.
Jake Archibald, a web platform engineer, highlighted the release: “The web now has sensible, low-level routing for navigations.” He also explained that the API splits interception into two parts, a precommitHandler for pre-URL-change tasks, and a handler for switching content after the URL updates. Notably, Safari’s implementation currently lacks precommitHandler support.
Developer Wael Fadl Allah, who has been testing the API, described it as “a game-changer for building SPAs.” He specifically cited the unified routing control, reliable navigation methods like navigation.back() and traverseTo(key), and built-in state persistence with scroll restoration.
The Navigation API browser baseline also brings improved history management. Developers can now inspect all same-origin entries via navigation.entries(), read structured state with .getState(), and jump directly to specific entries. This was impossible with the old History API.
Developers looking to migrate can consult the WICG Navigation API repository on GitHub, which includes a dedicated migration guide. MDN Web Docs also provide full reference documentation.
Meanwhile, popular SPA routers like React Router and TanStack Router have open discussions about adopting the Navigation API as a backend. Neither has shipped an integration yet. The API operates at a lower level than these routers, providing platform primitives, not competing with them directly.






