diff --git a/lib/datasource/npm/get.ts b/lib/datasource/npm/get.ts
index dc670aa1329f2331ee89d8e09fe2b56c2e8f9636..862ff3e21d35b4a37468db9d26f3e5153bb82832 100644
--- a/lib/datasource/npm/get.ts
+++ b/lib/datasource/npm/get.ts
@@ -207,7 +207,17 @@ export async function getDependency(
     const cacheMinutes = process.env.RENOVATE_CACHE_NPM_MINUTES
       ? parseInt(process.env.RENOVATE_CACHE_NPM_MINUTES, 10)
       : 5;
-    if (!packageName.startsWith('@')) {
+    // TODO: use dynamic detection of public repos instead of a static list
+    const whitelistedPublicScopes = [
+      '@graphql-codegen',
+      '@storybook',
+      '@types',
+      '@typescript-eslint',
+    ];
+    if (
+      whitelistedPublicScopes.includes(scope) ||
+      !packageName.startsWith('@')
+    ) {
       await renovateCache.set(cacheNamespace, pkgUrl, dep, cacheMinutes);
     }
     return dep;