diff --git a/.astro/types.d.ts b/.astro/types.d.ts
index f964fe0cf..03d7cc43f 100644
--- a/.astro/types.d.ts
+++ b/.astro/types.d.ts
@@ -1 +1,2 @@
///
+///
\ No newline at end of file
diff --git a/package.json b/package.json
index 831f517f2..7cf2830ad 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
"roadmap-links": "node scripts/roadmap-links.cjs",
"roadmap-dirs": "node scripts/roadmap-dirs.cjs",
"roadmap-assets": "tsx scripts/editor-roadmap-assets.ts",
+ "refresh-assets": "tsx scripts/refresh-assets.ts",
"editor-roadmap-dirs": "tsx scripts/editor-roadmap-dirs.ts",
"editor-roadmap-content": "tsx scripts/editor-roadmap-content.ts",
"roadmap-content": "node scripts/roadmap-content.cjs",
diff --git a/public/pdfs/roadmaps/ai-agents.pdf b/public/pdfs/roadmaps/ai-agents.pdf
index 1fa741d2c..f25f52574 100644
Binary files a/public/pdfs/roadmaps/ai-agents.pdf and b/public/pdfs/roadmaps/ai-agents.pdf differ
diff --git a/public/pdfs/roadmaps/ai-data-scientist.pdf b/public/pdfs/roadmaps/ai-data-scientist.pdf
index eec919034..e68121a03 100644
Binary files a/public/pdfs/roadmaps/ai-data-scientist.pdf and b/public/pdfs/roadmaps/ai-data-scientist.pdf differ
diff --git a/public/pdfs/roadmaps/ai-engineer.pdf b/public/pdfs/roadmaps/ai-engineer.pdf
index d1db7909f..7f1e32c86 100644
Binary files a/public/pdfs/roadmaps/ai-engineer.pdf and b/public/pdfs/roadmaps/ai-engineer.pdf differ
diff --git a/public/pdfs/roadmaps/ai-red-teaming.pdf b/public/pdfs/roadmaps/ai-red-teaming.pdf
index 5cb36547f..5f27910b6 100644
Binary files a/public/pdfs/roadmaps/ai-red-teaming.pdf and b/public/pdfs/roadmaps/ai-red-teaming.pdf differ
diff --git a/public/pdfs/roadmaps/android.pdf b/public/pdfs/roadmaps/android.pdf
index 81ef9a329..fafab2d27 100644
Binary files a/public/pdfs/roadmaps/android.pdf and b/public/pdfs/roadmaps/android.pdf differ
diff --git a/public/pdfs/roadmaps/angular.pdf b/public/pdfs/roadmaps/angular.pdf
index f2b9cb4e0..c418bdb7c 100644
Binary files a/public/pdfs/roadmaps/angular.pdf and b/public/pdfs/roadmaps/angular.pdf differ
diff --git a/public/pdfs/roadmaps/api-design.pdf b/public/pdfs/roadmaps/api-design.pdf
index 96e45d065..745397c9e 100644
Binary files a/public/pdfs/roadmaps/api-design.pdf and b/public/pdfs/roadmaps/api-design.pdf differ
diff --git a/public/pdfs/roadmaps/aspnet-core.pdf b/public/pdfs/roadmaps/aspnet-core.pdf
index f89ff146b..b6e3c54ee 100644
Binary files a/public/pdfs/roadmaps/aspnet-core.pdf and b/public/pdfs/roadmaps/aspnet-core.pdf differ
diff --git a/public/pdfs/roadmaps/aws.pdf b/public/pdfs/roadmaps/aws.pdf
index cb48acf85..15de42235 100644
Binary files a/public/pdfs/roadmaps/aws.pdf and b/public/pdfs/roadmaps/aws.pdf differ
diff --git a/public/pdfs/roadmaps/backend.pdf b/public/pdfs/roadmaps/backend.pdf
index 46d0ee707..79226b75a 100644
Binary files a/public/pdfs/roadmaps/backend.pdf and b/public/pdfs/roadmaps/backend.pdf differ
diff --git a/public/pdfs/roadmaps/blockchain.pdf b/public/pdfs/roadmaps/blockchain.pdf
index bc730c2b9..ed68ddf2c 100644
Binary files a/public/pdfs/roadmaps/blockchain.pdf and b/public/pdfs/roadmaps/blockchain.pdf differ
diff --git a/public/pdfs/roadmaps/cloudflare.pdf b/public/pdfs/roadmaps/cloudflare.pdf
index 3e2a7fb85..cd8b48ea4 100644
Binary files a/public/pdfs/roadmaps/cloudflare.pdf and b/public/pdfs/roadmaps/cloudflare.pdf differ
diff --git a/public/pdfs/roadmaps/computer-science.pdf b/public/pdfs/roadmaps/computer-science.pdf
index 59aca40eb..d258a1b6e 100644
Binary files a/public/pdfs/roadmaps/computer-science.pdf and b/public/pdfs/roadmaps/computer-science.pdf differ
diff --git a/public/pdfs/roadmaps/cpp.pdf b/public/pdfs/roadmaps/cpp.pdf
index 842a8952a..9c5d341e1 100644
Binary files a/public/pdfs/roadmaps/cpp.pdf and b/public/pdfs/roadmaps/cpp.pdf differ
diff --git a/public/pdfs/roadmaps/cyber-security.pdf b/public/pdfs/roadmaps/cyber-security.pdf
index a2d363ba2..e25aa21f3 100644
Binary files a/public/pdfs/roadmaps/cyber-security.pdf and b/public/pdfs/roadmaps/cyber-security.pdf differ
diff --git a/public/pdfs/roadmaps/data-analyst.pdf b/public/pdfs/roadmaps/data-analyst.pdf
index 52f180b49..48e8ed714 100644
Binary files a/public/pdfs/roadmaps/data-analyst.pdf and b/public/pdfs/roadmaps/data-analyst.pdf differ
diff --git a/public/pdfs/roadmaps/datastructures-and-algorithms.pdf b/public/pdfs/roadmaps/datastructures-and-algorithms.pdf
index b4c3db328..48a3cd030 100644
Binary files a/public/pdfs/roadmaps/datastructures-and-algorithms.pdf and b/public/pdfs/roadmaps/datastructures-and-algorithms.pdf differ
diff --git a/public/pdfs/roadmaps/design-system.pdf b/public/pdfs/roadmaps/design-system.pdf
index 7d4886bf1..31e5a7d65 100644
Binary files a/public/pdfs/roadmaps/design-system.pdf and b/public/pdfs/roadmaps/design-system.pdf differ
diff --git a/public/pdfs/roadmaps/devops.pdf b/public/pdfs/roadmaps/devops.pdf
index 99051e94c..e7fa53a1f 100644
Binary files a/public/pdfs/roadmaps/devops.pdf and b/public/pdfs/roadmaps/devops.pdf differ
diff --git a/public/pdfs/roadmaps/devrel.pdf b/public/pdfs/roadmaps/devrel.pdf
index e9f12a6c3..045fdf0ec 100644
Binary files a/public/pdfs/roadmaps/devrel.pdf and b/public/pdfs/roadmaps/devrel.pdf differ
diff --git a/public/pdfs/roadmaps/docker.pdf b/public/pdfs/roadmaps/docker.pdf
index 233930744..5fae221b6 100644
Binary files a/public/pdfs/roadmaps/docker.pdf and b/public/pdfs/roadmaps/docker.pdf differ
diff --git a/public/pdfs/roadmaps/engineering-manager.pdf b/public/pdfs/roadmaps/engineering-manager.pdf
index ecb2455ad..62e238f19 100644
Binary files a/public/pdfs/roadmaps/engineering-manager.pdf and b/public/pdfs/roadmaps/engineering-manager.pdf differ
diff --git a/public/pdfs/roadmaps/flutter.pdf b/public/pdfs/roadmaps/flutter.pdf
index a4fbbd328..8a57e29c8 100644
Binary files a/public/pdfs/roadmaps/flutter.pdf and b/public/pdfs/roadmaps/flutter.pdf differ
diff --git a/public/pdfs/roadmaps/frontend.pdf b/public/pdfs/roadmaps/frontend.pdf
index 05fb2530c..7cc044ae4 100644
Binary files a/public/pdfs/roadmaps/frontend.pdf and b/public/pdfs/roadmaps/frontend.pdf differ
diff --git a/public/pdfs/roadmaps/full-stack.pdf b/public/pdfs/roadmaps/full-stack.pdf
index ee318764d..6d745a61f 100644
Binary files a/public/pdfs/roadmaps/full-stack.pdf and b/public/pdfs/roadmaps/full-stack.pdf differ
diff --git a/public/pdfs/roadmaps/game-developer.pdf b/public/pdfs/roadmaps/game-developer.pdf
index 8bb9ccce6..105aa7cad 100644
Binary files a/public/pdfs/roadmaps/game-developer.pdf and b/public/pdfs/roadmaps/game-developer.pdf differ
diff --git a/public/pdfs/roadmaps/git-github.pdf b/public/pdfs/roadmaps/git-github.pdf
index 8b220fd9b..7c48b8590 100644
Binary files a/public/pdfs/roadmaps/git-github.pdf and b/public/pdfs/roadmaps/git-github.pdf differ
diff --git a/public/pdfs/roadmaps/golang.pdf b/public/pdfs/roadmaps/golang.pdf
index 3d766c18d..06f9680bb 100644
Binary files a/public/pdfs/roadmaps/golang.pdf and b/public/pdfs/roadmaps/golang.pdf differ
diff --git a/public/pdfs/roadmaps/graphql.pdf b/public/pdfs/roadmaps/graphql.pdf
index 05f2a1dbf..62b3d039e 100644
Binary files a/public/pdfs/roadmaps/graphql.pdf and b/public/pdfs/roadmaps/graphql.pdf differ
diff --git a/public/pdfs/roadmaps/ios.pdf b/public/pdfs/roadmaps/ios.pdf
index 83fc5ec82..ab5a4dc1d 100644
Binary files a/public/pdfs/roadmaps/ios.pdf and b/public/pdfs/roadmaps/ios.pdf differ
diff --git a/public/pdfs/roadmaps/java.pdf b/public/pdfs/roadmaps/java.pdf
index b41e2f7cb..f6f385efd 100644
Binary files a/public/pdfs/roadmaps/java.pdf and b/public/pdfs/roadmaps/java.pdf differ
diff --git a/public/pdfs/roadmaps/javascript.pdf b/public/pdfs/roadmaps/javascript.pdf
index dbd794e7b..98e1218d6 100644
Binary files a/public/pdfs/roadmaps/javascript.pdf and b/public/pdfs/roadmaps/javascript.pdf differ
diff --git a/public/pdfs/roadmaps/kubernetes.pdf b/public/pdfs/roadmaps/kubernetes.pdf
index bc3f56901..acf0a67dc 100644
Binary files a/public/pdfs/roadmaps/kubernetes.pdf and b/public/pdfs/roadmaps/kubernetes.pdf differ
diff --git a/public/pdfs/roadmaps/linux.pdf b/public/pdfs/roadmaps/linux.pdf
index 731731d74..9d1f2b7df 100644
Binary files a/public/pdfs/roadmaps/linux.pdf and b/public/pdfs/roadmaps/linux.pdf differ
diff --git a/public/pdfs/roadmaps/mlops.pdf b/public/pdfs/roadmaps/mlops.pdf
index 2cbf19bcd..a8df68f04 100644
Binary files a/public/pdfs/roadmaps/mlops.pdf and b/public/pdfs/roadmaps/mlops.pdf differ
diff --git a/public/pdfs/roadmaps/mongodb.pdf b/public/pdfs/roadmaps/mongodb.pdf
index 81241f85f..49cb668c4 100644
Binary files a/public/pdfs/roadmaps/mongodb.pdf and b/public/pdfs/roadmaps/mongodb.pdf differ
diff --git a/public/pdfs/roadmaps/nodejs.pdf b/public/pdfs/roadmaps/nodejs.pdf
index 6f1dda0d5..41746a97e 100644
Binary files a/public/pdfs/roadmaps/nodejs.pdf and b/public/pdfs/roadmaps/nodejs.pdf differ
diff --git a/public/pdfs/roadmaps/php.pdf b/public/pdfs/roadmaps/php.pdf
index b0beb5464..c962efddd 100644
Binary files a/public/pdfs/roadmaps/php.pdf and b/public/pdfs/roadmaps/php.pdf differ
diff --git a/public/pdfs/roadmaps/postgresql-dba.pdf b/public/pdfs/roadmaps/postgresql-dba.pdf
index f0fcba647..b33c7e672 100644
Binary files a/public/pdfs/roadmaps/postgresql-dba.pdf and b/public/pdfs/roadmaps/postgresql-dba.pdf differ
diff --git a/public/pdfs/roadmaps/product-manager.pdf b/public/pdfs/roadmaps/product-manager.pdf
index b1058aeab..5adead782 100644
Binary files a/public/pdfs/roadmaps/product-manager.pdf and b/public/pdfs/roadmaps/product-manager.pdf differ
diff --git a/public/pdfs/roadmaps/prompt-engineering.pdf b/public/pdfs/roadmaps/prompt-engineering.pdf
index fb4f1e7b0..d54ad0698 100644
Binary files a/public/pdfs/roadmaps/prompt-engineering.pdf and b/public/pdfs/roadmaps/prompt-engineering.pdf differ
diff --git a/public/pdfs/roadmaps/python.pdf b/public/pdfs/roadmaps/python.pdf
index 14a3616c2..7d4e289e5 100644
Binary files a/public/pdfs/roadmaps/python.pdf and b/public/pdfs/roadmaps/python.pdf differ
diff --git a/public/pdfs/roadmaps/qa.pdf b/public/pdfs/roadmaps/qa.pdf
index a70d76f78..93a5d64e4 100644
Binary files a/public/pdfs/roadmaps/qa.pdf and b/public/pdfs/roadmaps/qa.pdf differ
diff --git a/public/pdfs/roadmaps/react-native.pdf b/public/pdfs/roadmaps/react-native.pdf
index 8c65a27d9..7d312dce5 100644
Binary files a/public/pdfs/roadmaps/react-native.pdf and b/public/pdfs/roadmaps/react-native.pdf differ
diff --git a/public/pdfs/roadmaps/react.pdf b/public/pdfs/roadmaps/react.pdf
index 7552f7141..a8c8a331b 100644
Binary files a/public/pdfs/roadmaps/react.pdf and b/public/pdfs/roadmaps/react.pdf differ
diff --git a/public/pdfs/roadmaps/redis.pdf b/public/pdfs/roadmaps/redis.pdf
index 26c11afe3..837b9a6fd 100644
Binary files a/public/pdfs/roadmaps/redis.pdf and b/public/pdfs/roadmaps/redis.pdf differ
diff --git a/public/pdfs/roadmaps/rust.pdf b/public/pdfs/roadmaps/rust.pdf
index 24e9052c5..40d8270bc 100644
Binary files a/public/pdfs/roadmaps/rust.pdf and b/public/pdfs/roadmaps/rust.pdf differ
diff --git a/public/pdfs/roadmaps/server-side-game-developer.pdf b/public/pdfs/roadmaps/server-side-game-developer.pdf
index a6818c4bb..2e3bd0da9 100644
Binary files a/public/pdfs/roadmaps/server-side-game-developer.pdf and b/public/pdfs/roadmaps/server-side-game-developer.pdf differ
diff --git a/public/pdfs/roadmaps/software-architect.pdf b/public/pdfs/roadmaps/software-architect.pdf
index 50a52659c..e5453e846 100644
Binary files a/public/pdfs/roadmaps/software-architect.pdf and b/public/pdfs/roadmaps/software-architect.pdf differ
diff --git a/public/pdfs/roadmaps/software-design-architecture.pdf b/public/pdfs/roadmaps/software-design-architecture.pdf
index 6bd9c6686..9a8232310 100644
Binary files a/public/pdfs/roadmaps/software-design-architecture.pdf and b/public/pdfs/roadmaps/software-design-architecture.pdf differ
diff --git a/public/pdfs/roadmaps/spring-boot.pdf b/public/pdfs/roadmaps/spring-boot.pdf
index 036611832..ebf193265 100644
Binary files a/public/pdfs/roadmaps/spring-boot.pdf and b/public/pdfs/roadmaps/spring-boot.pdf differ
diff --git a/public/pdfs/roadmaps/sql.pdf b/public/pdfs/roadmaps/sql.pdf
index baccc5601..1442c20ae 100644
Binary files a/public/pdfs/roadmaps/sql.pdf and b/public/pdfs/roadmaps/sql.pdf differ
diff --git a/public/pdfs/roadmaps/system-design.pdf b/public/pdfs/roadmaps/system-design.pdf
index c000fdddf..8ab01c479 100644
Binary files a/public/pdfs/roadmaps/system-design.pdf and b/public/pdfs/roadmaps/system-design.pdf differ
diff --git a/public/pdfs/roadmaps/technical-writer.pdf b/public/pdfs/roadmaps/technical-writer.pdf
index 1bd194f91..269c2fb93 100644
Binary files a/public/pdfs/roadmaps/technical-writer.pdf and b/public/pdfs/roadmaps/technical-writer.pdf differ
diff --git a/public/pdfs/roadmaps/terraform.pdf b/public/pdfs/roadmaps/terraform.pdf
index d7830083d..2ef5b2b38 100644
Binary files a/public/pdfs/roadmaps/terraform.pdf and b/public/pdfs/roadmaps/terraform.pdf differ
diff --git a/public/pdfs/roadmaps/typescript.pdf b/public/pdfs/roadmaps/typescript.pdf
index 51c8fd71b..dcf6adfe2 100644
Binary files a/public/pdfs/roadmaps/typescript.pdf and b/public/pdfs/roadmaps/typescript.pdf differ
diff --git a/public/pdfs/roadmaps/ux-design.pdf b/public/pdfs/roadmaps/ux-design.pdf
index be3df4c88..9b5e90905 100644
Binary files a/public/pdfs/roadmaps/ux-design.pdf and b/public/pdfs/roadmaps/ux-design.pdf differ
diff --git a/public/pdfs/roadmaps/vue.pdf b/public/pdfs/roadmaps/vue.pdf
index 0b3ea0bb0..ff710c8d7 100644
Binary files a/public/pdfs/roadmaps/vue.pdf and b/public/pdfs/roadmaps/vue.pdf differ
diff --git a/public/roadmaps/ai-agents.png b/public/roadmaps/ai-agents.png
index 5ce6dba83..d41a30ccc 100644
Binary files a/public/roadmaps/ai-agents.png and b/public/roadmaps/ai-agents.png differ
diff --git a/public/roadmaps/ai-data-scientist.png b/public/roadmaps/ai-data-scientist.png
index f0990b443..168930512 100644
Binary files a/public/roadmaps/ai-data-scientist.png and b/public/roadmaps/ai-data-scientist.png differ
diff --git a/public/roadmaps/ai-engineer.png b/public/roadmaps/ai-engineer.png
index 2d7d03b7b..c0b2767e5 100644
Binary files a/public/roadmaps/ai-engineer.png and b/public/roadmaps/ai-engineer.png differ
diff --git a/public/roadmaps/ai-red-teaming.png b/public/roadmaps/ai-red-teaming.png
index 3da81fa53..2b8004a9a 100644
Binary files a/public/roadmaps/ai-red-teaming.png and b/public/roadmaps/ai-red-teaming.png differ
diff --git a/public/roadmaps/android.png b/public/roadmaps/android.png
index 42b11aa4d..467244c21 100644
Binary files a/public/roadmaps/android.png and b/public/roadmaps/android.png differ
diff --git a/public/roadmaps/angular.png b/public/roadmaps/angular.png
index e254577d2..f0f53089a 100644
Binary files a/public/roadmaps/angular.png and b/public/roadmaps/angular.png differ
diff --git a/public/roadmaps/api-design.png b/public/roadmaps/api-design.png
index a8854c19b..24b05a4fa 100644
Binary files a/public/roadmaps/api-design.png and b/public/roadmaps/api-design.png differ
diff --git a/public/roadmaps/aspnet-core.png b/public/roadmaps/aspnet-core.png
index 4cabef640..6f673de2b 100644
Binary files a/public/roadmaps/aspnet-core.png and b/public/roadmaps/aspnet-core.png differ
diff --git a/public/roadmaps/aws.png b/public/roadmaps/aws.png
index 460b1528d..14781f5d4 100644
Binary files a/public/roadmaps/aws.png and b/public/roadmaps/aws.png differ
diff --git a/public/roadmaps/backend.png b/public/roadmaps/backend.png
index 3f02f0537..29ba837af 100644
Binary files a/public/roadmaps/backend.png and b/public/roadmaps/backend.png differ
diff --git a/public/roadmaps/blockchain.png b/public/roadmaps/blockchain.png
index b67227383..dcecbb8f4 100644
Binary files a/public/roadmaps/blockchain.png and b/public/roadmaps/blockchain.png differ
diff --git a/public/roadmaps/cloudflare.png b/public/roadmaps/cloudflare.png
index a84e712ab..81ee873ca 100644
Binary files a/public/roadmaps/cloudflare.png and b/public/roadmaps/cloudflare.png differ
diff --git a/public/roadmaps/computer-science.png b/public/roadmaps/computer-science.png
index 13fd96f67..3a44960ed 100644
Binary files a/public/roadmaps/computer-science.png and b/public/roadmaps/computer-science.png differ
diff --git a/public/roadmaps/cpp.png b/public/roadmaps/cpp.png
index af9c04bdf..6022103c1 100644
Binary files a/public/roadmaps/cpp.png and b/public/roadmaps/cpp.png differ
diff --git a/public/roadmaps/cyber-security.png b/public/roadmaps/cyber-security.png
index 2e431caeb..4fbdb9a04 100644
Binary files a/public/roadmaps/cyber-security.png and b/public/roadmaps/cyber-security.png differ
diff --git a/public/roadmaps/data-analyst.png b/public/roadmaps/data-analyst.png
index b905e8efe..5086d72c2 100644
Binary files a/public/roadmaps/data-analyst.png and b/public/roadmaps/data-analyst.png differ
diff --git a/public/roadmaps/datastructures-and-algorithms.png b/public/roadmaps/datastructures-and-algorithms.png
index af3cbd669..8ce2f723b 100644
Binary files a/public/roadmaps/datastructures-and-algorithms.png and b/public/roadmaps/datastructures-and-algorithms.png differ
diff --git a/public/roadmaps/design-system.png b/public/roadmaps/design-system.png
index d51776f1a..79a0d65f5 100644
Binary files a/public/roadmaps/design-system.png and b/public/roadmaps/design-system.png differ
diff --git a/public/roadmaps/devops.png b/public/roadmaps/devops.png
index c2785cc84..4a0a34716 100644
Binary files a/public/roadmaps/devops.png and b/public/roadmaps/devops.png differ
diff --git a/public/roadmaps/devrel.png b/public/roadmaps/devrel.png
index 60838e774..22c1bef8e 100644
Binary files a/public/roadmaps/devrel.png and b/public/roadmaps/devrel.png differ
diff --git a/public/roadmaps/docker.png b/public/roadmaps/docker.png
index c398e3092..3f6df4d01 100644
Binary files a/public/roadmaps/docker.png and b/public/roadmaps/docker.png differ
diff --git a/public/roadmaps/engineering-manager.png b/public/roadmaps/engineering-manager.png
index e690c7e61..f005f1901 100644
Binary files a/public/roadmaps/engineering-manager.png and b/public/roadmaps/engineering-manager.png differ
diff --git a/public/roadmaps/flutter.png b/public/roadmaps/flutter.png
index 9dabe4027..eafbf2954 100644
Binary files a/public/roadmaps/flutter.png and b/public/roadmaps/flutter.png differ
diff --git a/public/roadmaps/frontend.png b/public/roadmaps/frontend.png
index aff06b157..e34afe170 100644
Binary files a/public/roadmaps/frontend.png and b/public/roadmaps/frontend.png differ
diff --git a/public/roadmaps/full-stack.png b/public/roadmaps/full-stack.png
index 2bb1f50a8..2f43d1181 100644
Binary files a/public/roadmaps/full-stack.png and b/public/roadmaps/full-stack.png differ
diff --git a/public/roadmaps/game-developer.png b/public/roadmaps/game-developer.png
index ba5ca892a..cf8fb69c1 100644
Binary files a/public/roadmaps/game-developer.png and b/public/roadmaps/game-developer.png differ
diff --git a/public/roadmaps/git-github.png b/public/roadmaps/git-github.png
index cf527c3c1..fda80480b 100644
Binary files a/public/roadmaps/git-github.png and b/public/roadmaps/git-github.png differ
diff --git a/public/roadmaps/golang.png b/public/roadmaps/golang.png
index 7489134ed..f354bc2dc 100644
Binary files a/public/roadmaps/golang.png and b/public/roadmaps/golang.png differ
diff --git a/public/roadmaps/graphql.png b/public/roadmaps/graphql.png
index 553ab00a7..2916357cb 100644
Binary files a/public/roadmaps/graphql.png and b/public/roadmaps/graphql.png differ
diff --git a/public/roadmaps/ios.png b/public/roadmaps/ios.png
index 9a68ace9f..081fcbac9 100644
Binary files a/public/roadmaps/ios.png and b/public/roadmaps/ios.png differ
diff --git a/public/roadmaps/java.png b/public/roadmaps/java.png
index 8144dc5d4..dc87d7166 100644
Binary files a/public/roadmaps/java.png and b/public/roadmaps/java.png differ
diff --git a/public/roadmaps/javascript.png b/public/roadmaps/javascript.png
index 3dd4109e2..e6d61a155 100644
Binary files a/public/roadmaps/javascript.png and b/public/roadmaps/javascript.png differ
diff --git a/public/roadmaps/kubernetes.png b/public/roadmaps/kubernetes.png
index df0a62329..8f381b691 100644
Binary files a/public/roadmaps/kubernetes.png and b/public/roadmaps/kubernetes.png differ
diff --git a/public/roadmaps/linux.png b/public/roadmaps/linux.png
index de17d4a1e..043dfa6b9 100644
Binary files a/public/roadmaps/linux.png and b/public/roadmaps/linux.png differ
diff --git a/public/roadmaps/mlops.png b/public/roadmaps/mlops.png
index a92d54685..809632405 100644
Binary files a/public/roadmaps/mlops.png and b/public/roadmaps/mlops.png differ
diff --git a/public/roadmaps/mongodb.png b/public/roadmaps/mongodb.png
index 06828b945..6b62a8268 100644
Binary files a/public/roadmaps/mongodb.png and b/public/roadmaps/mongodb.png differ
diff --git a/public/roadmaps/nodejs.png b/public/roadmaps/nodejs.png
index 8a68c1e71..974d95fd1 100644
Binary files a/public/roadmaps/nodejs.png and b/public/roadmaps/nodejs.png differ
diff --git a/public/roadmaps/php.png b/public/roadmaps/php.png
index f3d08d911..38a94a19d 100644
Binary files a/public/roadmaps/php.png and b/public/roadmaps/php.png differ
diff --git a/public/roadmaps/postgresql-dba.png b/public/roadmaps/postgresql-dba.png
index 37ac9300f..c4f6e59c1 100644
Binary files a/public/roadmaps/postgresql-dba.png and b/public/roadmaps/postgresql-dba.png differ
diff --git a/public/roadmaps/product-manager.png b/public/roadmaps/product-manager.png
index 35c79cbc3..eef5e78e3 100644
Binary files a/public/roadmaps/product-manager.png and b/public/roadmaps/product-manager.png differ
diff --git a/public/roadmaps/prompt-engineering.png b/public/roadmaps/prompt-engineering.png
index a0e394671..03319f37e 100644
Binary files a/public/roadmaps/prompt-engineering.png and b/public/roadmaps/prompt-engineering.png differ
diff --git a/public/roadmaps/python.png b/public/roadmaps/python.png
index d9c553070..730e79ebe 100644
Binary files a/public/roadmaps/python.png and b/public/roadmaps/python.png differ
diff --git a/public/roadmaps/qa.png b/public/roadmaps/qa.png
index bb5cf61f5..65e0aca09 100644
Binary files a/public/roadmaps/qa.png and b/public/roadmaps/qa.png differ
diff --git a/public/roadmaps/react-native.png b/public/roadmaps/react-native.png
new file mode 100644
index 000000000..e23aff22f
Binary files /dev/null and b/public/roadmaps/react-native.png differ
diff --git a/public/roadmaps/react.png b/public/roadmaps/react.png
index 6df1d03a8..f2d02defb 100644
Binary files a/public/roadmaps/react.png and b/public/roadmaps/react.png differ
diff --git a/public/roadmaps/redis.png b/public/roadmaps/redis.png
index bd3da4606..06709f48b 100644
Binary files a/public/roadmaps/redis.png and b/public/roadmaps/redis.png differ
diff --git a/public/roadmaps/rust.png b/public/roadmaps/rust.png
index 4773cc024..822a5dcd3 100644
Binary files a/public/roadmaps/rust.png and b/public/roadmaps/rust.png differ
diff --git a/public/roadmaps/server-side-game-developer.png b/public/roadmaps/server-side-game-developer.png
new file mode 100644
index 000000000..886b1bbe4
Binary files /dev/null and b/public/roadmaps/server-side-game-developer.png differ
diff --git a/public/roadmaps/software-architect.png b/public/roadmaps/software-architect.png
index a5bdbd14b..cd7eaec45 100644
Binary files a/public/roadmaps/software-architect.png and b/public/roadmaps/software-architect.png differ
diff --git a/public/roadmaps/software-design-architecture.png b/public/roadmaps/software-design-architecture.png
index 01b1eb911..fc2e7751e 100644
Binary files a/public/roadmaps/software-design-architecture.png and b/public/roadmaps/software-design-architecture.png differ
diff --git a/public/roadmaps/spring-boot.png b/public/roadmaps/spring-boot.png
new file mode 100644
index 000000000..ad6f9ae64
Binary files /dev/null and b/public/roadmaps/spring-boot.png differ
diff --git a/public/roadmaps/sql.png b/public/roadmaps/sql.png
index a50bdadb2..e6d2592c2 100644
Binary files a/public/roadmaps/sql.png and b/public/roadmaps/sql.png differ
diff --git a/public/roadmaps/system-design.png b/public/roadmaps/system-design.png
new file mode 100644
index 000000000..126c78fcb
Binary files /dev/null and b/public/roadmaps/system-design.png differ
diff --git a/public/roadmaps/technical-writer.png b/public/roadmaps/technical-writer.png
index d5cdb233c..b09ef7128 100644
Binary files a/public/roadmaps/technical-writer.png and b/public/roadmaps/technical-writer.png differ
diff --git a/public/roadmaps/terraform.png b/public/roadmaps/terraform.png
index 85734c18c..ba92f9075 100644
Binary files a/public/roadmaps/terraform.png and b/public/roadmaps/terraform.png differ
diff --git a/public/roadmaps/typescript.png b/public/roadmaps/typescript.png
index 6bfd2cecd..8fec748ec 100644
Binary files a/public/roadmaps/typescript.png and b/public/roadmaps/typescript.png differ
diff --git a/public/roadmaps/ux-design.png b/public/roadmaps/ux-design.png
index 05f10c130..23792215e 100644
Binary files a/public/roadmaps/ux-design.png and b/public/roadmaps/ux-design.png differ
diff --git a/public/roadmaps/vue.png b/public/roadmaps/vue.png
index bb9235ea4..0340b3630 100644
Binary files a/public/roadmaps/vue.png and b/public/roadmaps/vue.png differ
diff --git a/scripts/refresh-assets.ts b/scripts/refresh-assets.ts
new file mode 100644
index 000000000..069f21a29
--- /dev/null
+++ b/scripts/refresh-assets.ts
@@ -0,0 +1,44 @@
+#!/usr/bin/env tsx
+
+import { execSync } from 'child_process';
+import * as fs from 'fs';
+import * as path from 'path';
+
+const roadmapsDir = path.join(process.cwd(), 'src/data/roadmaps');
+
+const roadmapIds = fs.readdirSync(roadmapsDir)
+ .filter(item => {
+ const fullPath = path.join(roadmapsDir, item);
+ return fs.statSync(fullPath).isDirectory();
+ });
+
+console.log(`Found ${roadmapIds.length} roadmaps to process...`);
+
+const promises = roadmapIds.map(roadmapId => {
+ return new Promise((resolve, reject) => {
+ console.log(`Processing: ${roadmapId}`);
+
+ try {
+ execSync(`npm run roadmap-assets ${roadmapId}`, {
+ stdio: 'inherit',
+ cwd: process.cwd()
+ });
+ console.log(`✓ Completed: ${roadmapId}`);
+ resolve(roadmapId);
+ } catch (error) {
+ console.error(`✗ Failed: ${roadmapId}`, error);
+ reject(error);
+ }
+ });
+});
+
+Promise.allSettled(promises).then(results => {
+ const successful = results.filter(r => r.status === 'fulfilled').length;
+ const failed = results.filter(r => r.status === 'rejected').length;
+
+ console.log(`\n=== Summary ===`);
+ console.log(`✓ Successful: ${successful}/${roadmapIds.length}`);
+ if (failed > 0) {
+ console.log(`✗ Failed: ${failed}/${roadmapIds.length}`);
+ }
+});
\ No newline at end of file
diff --git a/src/components/EditorRoadmap/EditorRoadmap.tsx b/src/components/EditorRoadmap/EditorRoadmap.tsx
index 4f91be514..997a78362 100644
--- a/src/components/EditorRoadmap/EditorRoadmap.tsx
+++ b/src/components/EditorRoadmap/EditorRoadmap.tsx
@@ -15,6 +15,7 @@ import { RoadmapFloatingChat } from '../FrameRenderer/RoadmapFloatingChat.tsx';
type EditorRoadmapProps = {
resourceId: string;
resourceType?: ResourceType;
+ hasChat?: boolean;
dimensions: {
width: number;
height: number;
@@ -22,7 +23,7 @@ type EditorRoadmapProps = {
};
export function EditorRoadmap(props: EditorRoadmapProps) {
- const { resourceId, resourceType = 'roadmap', dimensions } = props;
+ const { resourceId, resourceType = 'roadmap', dimensions, hasChat = true } = props;
const [hasSwitchedRoadmap, setHasSwitchedRoadmap] = useState(false);
const [isLoading, setIsLoading] = useState(true);
@@ -99,7 +100,7 @@ export function EditorRoadmap(props: EditorRoadmapProps) {
dimensions={dimensions}
resourceId={resourceId}
/>
-
+ {hasChat && }
);
}
diff --git a/src/pages/[roadmapId]/svg.astro b/src/pages/[roadmapId]/svg.astro
index d57b51c69..5b508c215 100644
--- a/src/pages/[roadmapId]/svg.astro
+++ b/src/pages/[roadmapId]/svg.astro
@@ -52,6 +52,7 @@ const ogImageUrl =
resourceType='roadmap'
dimensions={roadmapData.dimensions!}
client:load
+ hasChat={false}
/>
) : (