diff --git a/lib/config/presets/internal/group.ts b/lib/config/presets/internal/group.ts
index 6cba5a2e767f45fa33355a1d927f8f19979be3cd..18a9bf8d2f68f8855f01b87491a4b8cd0aec9714 100644
--- a/lib/config/presets/internal/group.ts
+++ b/lib/config/presets/internal/group.ts
@@ -336,6 +336,15 @@ const staticGroups = {
       },
     ],
   },
+  react: {
+    description: 'Group React and corresponding `@types` packages together.',
+    packageRules: [
+      {
+        groupName: 'react monorepo',
+        matchPackageNames: ['@types/react', '@types/react-dom'],
+      },
+    ],
+  },
   recommended: {
     description:
       'Use curated list of recommended non-monorepo package groupings.',
@@ -359,6 +368,7 @@ const staticGroups = {
       'group:kubernetes',
       'group:phpstan',
       'group:polymer',
+      'group:react',
       'group:resilience4j',
       'group:rubyOnRails',
       'group:rubyOmniauth',