diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md
index 13cb7d7..7694ed9 100644
--- a/packages/go_router_builder/CHANGELOG.md
+++ b/packages/go_router_builder/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.0.16
+
+* Update the documentation to go_router v6.0.0.
+* Bumps go_router version in example folder to v6.0.0.
+
 ## 1.0.15
 
 * Avoids using deprecated DartType.element2.
diff --git a/packages/go_router_builder/README.md b/packages/go_router_builder/README.md
index 73830a3..5d1db7a 100644
--- a/packages/go_router_builder/README.md
+++ b/packages/go_router_builder/README.md
@@ -85,7 +85,7 @@
   const HomeRoute();
 
   @override
-  Widget build(BuildContext context) => const HomeScreen();
+  Widget build(BuildContext context, GoRouterState state) => const HomeScreen();
 }
 ```
 
@@ -109,7 +109,7 @@
   const HomeRoute();
 
   @override
-  Widget build(BuildContext context) => HomeScreen(families: familyData);
+  Widget build(BuildContext context, GoRouterState state) => HomeScreen(families: familyData);
 }
 
 @TypedGoRoute<LoginRoute>(path: '/login')
@@ -135,7 +135,7 @@
   final Exception error;
 
   @override
-  Widget build(BuildContext context) => ErrorScreen(error: error);
+  Widget build(BuildContext context, GoRouterState state) => ErrorScreen(error: error);
 }
 ```
 
@@ -175,7 +175,7 @@
   final String? from;
 
   @override
-  Widget build(BuildContext context) => LoginScreen(from: from);
+  Widget build(BuildContext context, GoRouterState state) => LoginScreen(from: from);
 }
 ```
 
@@ -190,7 +190,7 @@
   final int? $extra;
 
   @override
-  Widget build(BuildContext context) => PersonScreen(personId: $extra);
+  Widget build(BuildContext context, GoRouterState state) => PersonScreen(personId: $extra);
 }
 ```
 
@@ -216,7 +216,7 @@
   final Sauce $extra; // special $extra parameter
 
   @override
-  Widget build(BuildContext context) => HotdogScreen(ketchup, mustard, $extra);
+  Widget build(BuildContext context, GoRouterState state) => HotdogScreen(ketchup, mustard, $extra);
 }
 ```
 
@@ -245,7 +245,7 @@
 class HomeRoute extends GoRouteData {
   // no need to implement [build] when this [redirect] is unconditional
   @override
-  String? redirect() => BooksRoute().location;
+  String? redirect(BuildContext context, GoRouterState state) => BooksRoute().location;
 }
 ```
 
@@ -262,7 +262,7 @@
   final BookKind kind;
 
   @override
-  Widget build(BuildContext context) => BooksScreen(kind: kind);
+  Widget build(BuildContext context, GoRouterState state) => BooksScreen(kind: kind);
 }
 ```
 
@@ -279,14 +279,14 @@
 
 If you'd like to change how the page is created, e.g. to use a different page
 type, pass non-default parameters when creating the page (like a custom key) or
-access the `GoRouteState` object, you can override the `buildPageWithState`
+access the `GoRouteState` object, you can override the `buildPage`
 method of the base class instead of the `build` method:
 
 ```dart
 class MyMaterialRouteWithKey extends GoRouteData {
   static final _key = LocalKey('my-route-with-key');
   @override
-  MaterialPage<void> buildPageWithState(BuildContext context, GoRouterState state) =>
+  MaterialPage<void> buildPage(BuildContext context, GoRouterState state) =>
     MaterialPage<void>(
       key: _key,
       child: MyPage(),
@@ -296,12 +296,12 @@
 
 ### Custom transitions
 
-Overriding the `buildPageWithState` method is also useful for custom transitions:
+Overriding the `buildPage` method is also useful for custom transitions:
 
 ```dart
 class FancyRoute extends GoRouteData {
   @override
-  MaterialPage<void> buildPageWithState(BuildContext context, GoRouterState state) =>
+  MaterialPage<void> buildPage(BuildContext context, GoRouterState state) =>
     CustomTransitionPage<void>(
       key: state.pageKey,
       child: FancyPage(),
diff --git a/packages/go_router_builder/example/lib/all_types.dart b/packages/go_router_builder/example/lib/all_types.dart
index 8197697..606f5d2 100644
--- a/packages/go_router_builder/example/lib/all_types.dart
+++ b/packages/go_router_builder/example/lib/all_types.dart
@@ -30,7 +30,8 @@
   const AllTypesBaseRoute();
 
   @override
-  Widget build(BuildContext context) => const BasePage<void>(
+  Widget build(BuildContext context, GoRouterState state) =>
+      const BasePage<void>(
         dataTitle: 'Root',
         param: null,
       );
@@ -46,7 +47,7 @@
   final BigInt? bigIntField;
 
   @override
-  Widget build(BuildContext context) => BasePage<BigInt>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<BigInt>(
         dataTitle: 'BigIntRoute',
         param: requiredBigIntField,
         queryParam: bigIntField,
@@ -69,7 +70,7 @@
   final bool? boolField;
 
   @override
-  Widget build(BuildContext context) => BasePage<bool>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<bool>(
         dataTitle: 'BoolRoute',
         param: requiredBoolField,
         queryParam: boolField,
@@ -92,7 +93,7 @@
   final DateTime? dateTimeField;
 
   @override
-  Widget build(BuildContext context) => BasePage<DateTime>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<DateTime>(
         dataTitle: 'DateTimeRoute',
         param: requiredDateTimeField,
         queryParam: dateTimeField,
@@ -115,7 +116,7 @@
   final double? doubleField;
 
   @override
-  Widget build(BuildContext context) => BasePage<double>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<double>(
         dataTitle: 'DoubleRoute',
         param: requiredDoubleField,
         queryParam: doubleField,
@@ -138,7 +139,7 @@
   final int? intField;
 
   @override
-  Widget build(BuildContext context) => BasePage<int>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<int>(
         dataTitle: 'IntRoute',
         param: requiredIntField,
         queryParam: intField,
@@ -161,7 +162,7 @@
   final num? numField;
 
   @override
-  Widget build(BuildContext context) => BasePage<num>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<num>(
         dataTitle: 'NumRoute',
         param: requiredNumField,
         queryParam: numField,
@@ -184,7 +185,8 @@
   final PersonDetails? enumField;
 
   @override
-  Widget build(BuildContext context) => BasePage<PersonDetails>(
+  Widget build(BuildContext context, GoRouterState state) =>
+      BasePage<PersonDetails>(
         dataTitle: 'EnumRoute',
         param: requiredEnumField,
         queryParam: enumField,
@@ -207,7 +209,8 @@
   final SportDetails? enumField;
 
   @override
-  Widget build(BuildContext context) => BasePage<SportDetails>(
+  Widget build(BuildContext context, GoRouterState state) =>
+      BasePage<SportDetails>(
         dataTitle: 'EnhancedEnumRoute',
         param: requiredEnumField,
         queryParam: enumField,
@@ -230,7 +233,7 @@
   final String? stringField;
 
   @override
-  Widget build(BuildContext context) => BasePage<String>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<String>(
         dataTitle: 'StringRoute',
         param: requiredStringField,
         queryParam: stringField,
@@ -253,7 +256,7 @@
   final Uri? uriField;
 
   @override
-  Widget build(BuildContext context) => BasePage<Uri>(
+  Widget build(BuildContext context, GoRouterState state) => BasePage<Uri>(
         dataTitle: 'UriRoute',
         param: requiredUriField,
         queryParam: uriField,
diff --git a/packages/go_router_builder/example/lib/main.dart b/packages/go_router_builder/example/lib/main.dart
index 8311655..6d24c46 100644
--- a/packages/go_router_builder/example/lib/main.dart
+++ b/packages/go_router_builder/example/lib/main.dart
@@ -83,7 +83,7 @@
   const HomeRoute();
 
   @override
-  Widget build(BuildContext context) => const HomeScreen();
+  Widget build(BuildContext context, GoRouterState state) => const HomeScreen();
 }
 
 @TypedGoRoute<LoginRoute>(
@@ -95,7 +95,8 @@
   final String? fromPage;
 
   @override
-  Widget build(BuildContext context) => LoginScreen(from: fromPage);
+  Widget build(BuildContext context, GoRouterState state) =>
+      LoginScreen(from: fromPage);
 }
 
 class FamilyRoute extends GoRouteData {
@@ -104,7 +105,8 @@
   final String fid;
 
   @override
-  Widget build(BuildContext context) => FamilyScreen(family: familyById(fid));
+  Widget build(BuildContext context, GoRouterState state) =>
+      FamilyScreen(family: familyById(fid));
 }
 
 class PersonRoute extends GoRouteData {
@@ -114,7 +116,7 @@
   final int pid;
 
   @override
-  Widget build(BuildContext context) {
+  Widget build(BuildContext context, GoRouterState state) {
     final Family family = familyById(fid);
     final Person person = family.person(pid);
     return PersonScreen(family: family, person: person);
@@ -130,7 +132,7 @@
   final int? $extra;
 
   @override
-  Page<void> buildPageWithState(BuildContext context, GoRouterState state) {
+  Page<void> buildPage(BuildContext context, GoRouterState state) {
     final Family family = familyById(fid);
     final Person person = family.person(pid);
 
diff --git a/packages/go_router_builder/example/lib/simple_example.dart b/packages/go_router_builder/example/lib/simple_example.dart
index 9657475..6253fc6 100644
--- a/packages/go_router_builder/example/lib/simple_example.dart
+++ b/packages/go_router_builder/example/lib/simple_example.dart
@@ -36,7 +36,7 @@
   const HomeRoute();
 
   @override
-  Widget build(BuildContext context) => const HomeScreen();
+  Widget build(BuildContext context, GoRouterState state) => const HomeScreen();
 }
 
 class FamilyRoute extends GoRouteData {
@@ -45,7 +45,7 @@
   final String familyId;
 
   @override
-  Widget build(BuildContext context) =>
+  Widget build(BuildContext context, GoRouterState state) =>
       FamilyScreen(family: familyById(familyId));
 }
 
diff --git a/packages/go_router_builder/example/pubspec.yaml b/packages/go_router_builder/example/pubspec.yaml
index 71ec478..0b7ffcb 100644
--- a/packages/go_router_builder/example/pubspec.yaml
+++ b/packages/go_router_builder/example/pubspec.yaml
@@ -8,7 +8,7 @@
 dependencies:
   flutter:
     sdk: flutter
-  go_router: ^5.0.0
+  go_router: ^6.0.0
   provider: ^6.0.0
 
 dev_dependencies:
diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml
index 60a2c3e..6e10839 100644
--- a/packages/go_router_builder/pubspec.yaml
+++ b/packages/go_router_builder/pubspec.yaml
@@ -2,7 +2,7 @@
 description: >-
   A builder that supports generated strongly-typed route helpers for
   package:go_router
-version: 1.0.15
+version: 1.0.16
 repository: https://github.com/flutter/packages/tree/main/packages/go_router_builder
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router_builder%22
 
