diff --git a/package.json b/package.json
index aa367ad9279..5ca7cd4ff95 100644
--- a/package.json
+++ b/package.json
@@ -41,19 +41,17 @@
 		"tslib": "^2.6.2",
 		"typescript": "^5.2.2",
 		"vite": "^4.4.9",
+		"vite-plugin-dynamic-import": "^1.5.0",
 		"vitest": "^0.32.4"
 	},
 	"type": "module",
 	"dependencies": {
-		"@apidevtools/json-schema-ref-parser": "^11.1.0",
-		"@apidevtools/swagger-parser": "^10.1.0",
 		"@appwrite.io/pink": "0.0.7-sl10.0",
 		"@appwrite.io/pink-icons": "0.0.7-sl10.0",
 		"@appwrite.io/repo": "github:appwrite/appwrite",
 		"@fontsource/inter": "^5.0.8",
 		"highlight.js": "^11.8.0",
 		"markdown-it": "^13.0.1",
-		"motion": "^10.16.2",
-		"vite-plugin-dynamic-import": "^1.5.0"
+		"motion": "^10.16.2"
 	}
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6f0df550fac..e8fad744b7d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,12 +5,6 @@ settings:
   excludeLinksFromLockfile: false
 
 dependencies:
-  '@apidevtools/json-schema-ref-parser':
-    specifier: ^11.1.0
-    version: 11.1.0
-  '@apidevtools/swagger-parser':
-    specifier: ^10.1.0
-    version: 10.1.0(openapi-types@12.1.3)
   '@appwrite.io/pink':
     specifier: 0.0.7-sl10.0
     version: 0.0.7-sl10.0
@@ -32,9 +26,6 @@ dependencies:
   motion:
     specifier: ^10.16.2
     version: 10.16.2
-  vite-plugin-dynamic-import:
-    specifier: ^1.5.0
-    version: 1.5.0
 
 devDependencies:
   '@melt-ui/pp':
@@ -109,6 +100,9 @@ devDependencies:
   vite:
     specifier: ^4.4.9
     version: 4.4.9(@types/node@20.5.0)(sass@1.66.1)
+  vite-plugin-dynamic-import:
+    specifier: ^1.5.0
+    version: 1.5.0
   vitest:
     specifier: ^0.32.4
     version: 0.32.4(sass@1.66.1)
@@ -128,49 +122,6 @@ packages:
       '@jridgewell/trace-mapping': 0.3.19
     dev: true
 
-  /@apidevtools/json-schema-ref-parser@11.1.0:
-    resolution: {integrity: sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag==}
-    engines: {node: '>= 16'}
-    dependencies:
-      '@jsdevtools/ono': 7.1.3
-      '@types/json-schema': 7.0.13
-      '@types/lodash.clonedeep': 4.5.7
-      js-yaml: 4.1.0
-      lodash.clonedeep: 4.5.0
-    dev: false
-
-  /@apidevtools/json-schema-ref-parser@9.0.6:
-    resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==}
-    dependencies:
-      '@jsdevtools/ono': 7.1.3
-      call-me-maybe: 1.0.2
-      js-yaml: 3.14.1
-    dev: false
-
-  /@apidevtools/openapi-schemas@2.1.0:
-    resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==}
-    engines: {node: '>=10'}
-    dev: false
-
-  /@apidevtools/swagger-methods@3.0.2:
-    resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==}
-    dev: false
-
-  /@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3):
-    resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==}
-    peerDependencies:
-      openapi-types: '>=7'
-    dependencies:
-      '@apidevtools/json-schema-ref-parser': 9.0.6
-      '@apidevtools/openapi-schemas': 2.1.0
-      '@apidevtools/swagger-methods': 3.0.2
-      '@jsdevtools/ono': 7.1.3
-      ajv: 8.12.0
-      ajv-draft-04: 1.0.0(ajv@8.12.0)
-      call-me-maybe: 1.0.2
-      openapi-types: 12.1.3
-    dev: false
-
   /@appwrite.io/pink-icons@0.0.7-sl10.0:
     resolution: {integrity: sha512-lEC79/0YEWVbwtIFgwONbBelNX07I2d3q2fmzub3X3DR/0ZB4JMy5zyO0h8EMbOB00DxkI8rW7KlwDSstQ3fGw==}
     dev: false
@@ -885,6 +836,7 @@ packages:
 
   /@jridgewell/sourcemap-codec@1.4.15:
     resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+    dev: true
 
   /@jridgewell/trace-mapping@0.3.19:
     resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
@@ -893,10 +845,6 @@ packages:
       '@jridgewell/sourcemap-codec': 1.4.15
     dev: true
 
-  /@jsdevtools/ono@7.1.3:
-    resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
-    dev: false
-
   /@markdoc/markdoc@0.3.2:
     resolution: {integrity: sha512-D0SaanaSkTIARvQu+zQqPEpKcvYUBR/mfac9e8JzS89P7eXhiNWPonUN7avRS1saZHpIQWIRote97qT+jGk5Gw==}
     engines: {node: '>=14.7.0'}
@@ -1003,10 +951,12 @@ packages:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
       run-parallel: 1.2.0
+    dev: true
 
   /@nodelib/fs.stat@2.0.5:
     resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
     engines: {node: '>= 8'}
+    dev: true
 
   /@nodelib/fs.walk@1.2.8:
     resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
@@ -1014,6 +964,7 @@ packages:
     dependencies:
       '@nodelib/fs.scandir': 2.1.5
       fastq: 1.15.0
+    dev: true
 
   /@npmcli/fs@3.1.0:
     resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==}
@@ -1296,10 +1247,6 @@ packages:
     resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
     dev: true
 
-  /@types/json-schema@7.0.13:
-    resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
-    dev: false
-
   /@types/jsonfile@6.1.1:
     resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==}
     dependencies:
@@ -1310,16 +1257,6 @@ packages:
     resolution: {integrity: sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g==}
     dev: true
 
-  /@types/lodash.clonedeep@4.5.7:
-    resolution: {integrity: sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==}
-    dependencies:
-      '@types/lodash': 4.14.198
-    dev: false
-
-  /@types/lodash@4.14.198:
-    resolution: {integrity: sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==}
-    dev: false
-
   /@types/markdown-it@12.2.3:
     resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==}
     requiresBuild: true
@@ -1578,6 +1515,7 @@ packages:
     resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
     engines: {node: '>=0.4.0'}
     hasBin: true
+    dev: true
 
   /agent-base@6.0.2:
     resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
@@ -1603,17 +1541,6 @@ packages:
       indent-string: 4.0.0
     dev: true
 
-  /ajv-draft-04@1.0.0(ajv@8.12.0):
-    resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==}
-    peerDependencies:
-      ajv: ^8.5.0
-    peerDependenciesMeta:
-      ajv:
-        optional: true
-    dependencies:
-      ajv: 8.12.0
-    dev: false
-
   /ajv@6.12.6:
     resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
     dependencies:
@@ -1623,15 +1550,6 @@ packages:
       uri-js: 4.4.1
     dev: true
 
-  /ajv@8.12.0:
-    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
-    dependencies:
-      fast-deep-equal: 3.1.3
-      json-schema-traverse: 1.0.0
-      require-from-string: 2.0.2
-      uri-js: 4.4.1
-    dev: false
-
   /ansi-colors@4.1.3:
     resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
     engines: {node: '>=6'}
@@ -1692,12 +1610,6 @@ packages:
       readable-stream: 3.6.2
     dev: true
 
-  /argparse@1.0.10:
-    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-    dependencies:
-      sprintf-js: 1.0.3
-    dev: false
-
   /argparse@2.0.1:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
 
@@ -1846,6 +1758,7 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       fill-range: 7.0.1
+    dev: true
 
   /buffer-crc32@0.2.13:
     resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
@@ -1915,10 +1828,6 @@ packages:
       unset-value: 1.0.0
     dev: true
 
-  /call-me-maybe@1.0.2:
-    resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
-    dev: false
-
   /callsites@3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     engines: {node: '>=6'}
@@ -2392,7 +2301,7 @@ packages:
 
   /es-module-lexer@1.3.1:
     resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==}
-    dev: false
+    dev: true
 
   /es6-promise@3.3.1:
     resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
@@ -2555,12 +2464,6 @@ packages:
       eslint-visitor-keys: 3.4.3
     dev: true
 
-  /esprima@4.0.1:
-    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
-    engines: {node: '>=4'}
-    hasBin: true
-    dev: false
-
   /esquery@1.5.0:
     resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
     engines: {node: '>=0.10'}
@@ -2656,6 +2559,7 @@ packages:
 
   /fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+    dev: true
 
   /fast-glob@3.3.1:
     resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
@@ -2666,6 +2570,7 @@ packages:
       glob-parent: 5.1.2
       merge2: 1.4.1
       micromatch: 4.0.5
+    dev: true
 
   /fast-json-stable-stringify@2.1.0:
     resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
@@ -2679,6 +2584,7 @@ packages:
     resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
     dependencies:
       reusify: 1.0.4
+    dev: true
 
   /file-entry-cache@6.0.1:
     resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
@@ -2721,6 +2627,7 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       to-regex-range: 5.0.1
+    dev: true
 
   /find-up@5.0.0:
     resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
@@ -2843,6 +2750,7 @@ packages:
     engines: {node: '>= 6'}
     dependencies:
       is-glob: 4.0.3
+    dev: true
 
   /glob-parent@6.0.2:
     resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
@@ -3046,6 +2954,7 @@ packages:
   /iconv-lite@0.6.3:
     resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
     engines: {node: '>=0.10.0'}
+    requiresBuild: true
     dependencies:
       safer-buffer: 2.1.2
     dev: true
@@ -3184,6 +3093,7 @@ packages:
   /is-extglob@2.1.1:
     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
     engines: {node: '>=0.10.0'}
+    dev: true
 
   /is-fullwidth-code-point@3.0.0:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
@@ -3199,6 +3109,7 @@ packages:
     engines: {node: '>=0.10.0'}
     dependencies:
       is-extglob: 2.1.1
+    dev: true
 
   /is-lambda@1.0.1:
     resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
@@ -3214,6 +3125,7 @@ packages:
   /is-number@7.0.0:
     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
     engines: {node: '>=0.12.0'}
+    dev: true
 
   /is-path-cwd@2.2.0:
     resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
@@ -3302,28 +3214,17 @@ packages:
     resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==}
     dev: true
 
-  /js-yaml@3.14.1:
-    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
-    hasBin: true
-    dependencies:
-      argparse: 1.0.10
-      esprima: 4.0.1
-    dev: false
-
   /js-yaml@4.1.0:
     resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
     hasBin: true
     dependencies:
       argparse: 2.0.1
+    dev: true
 
   /json-schema-traverse@0.4.1:
     resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
     dev: true
 
-  /json-schema-traverse@1.0.0:
-    resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
-    dev: false
-
   /json-stable-stringify-without-jsonify@1.0.1:
     resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
     dev: true
@@ -3435,10 +3336,6 @@ packages:
       p-locate: 5.0.0
     dev: true
 
-  /lodash.clonedeep@4.5.0:
-    resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
-    dev: false
-
   /lodash.merge@4.6.2:
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     dev: true
@@ -3486,6 +3383,7 @@ packages:
     engines: {node: '>=12'}
     dependencies:
       '@jridgewell/sourcemap-codec': 1.4.15
+    dev: true
 
   /make-fetch-happen@11.1.1:
     resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
@@ -3561,6 +3459,7 @@ packages:
   /merge2@1.4.1:
     resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
     engines: {node: '>= 8'}
+    dev: true
 
   /microbuffer@1.0.0:
     resolution: {integrity: sha512-O/SUXauVN4x6RaEJFqSPcXNtLFL+QzJHKZlyDVYFwcDDRVca3Fa/37QXXC+4zAGGa4YhHrHxKXuuHvLDIQECtA==}
@@ -3593,6 +3492,7 @@ packages:
     dependencies:
       braces: 3.0.2
       picomatch: 2.3.1
+    dev: true
 
   /mime@1.6.0:
     resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
@@ -3839,12 +3739,14 @@ packages:
 
   /node-addon-api@3.2.1:
     resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
+    requiresBuild: true
     dev: true
     optional: true
 
   /node-gyp-build@4.6.1:
     resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==}
     hasBin: true
+    requiresBuild: true
     dev: true
     optional: true
 
@@ -3945,6 +3847,7 @@ packages:
 
   /openapi-types@12.1.3:
     resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
+    dev: true
 
   /optionator@0.9.3:
     resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
@@ -4132,6 +4035,7 @@ packages:
   /picomatch@2.3.1:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     engines: {node: '>=8.6'}
+    dev: true
 
   /pirates@4.0.6:
     resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
@@ -4307,9 +4211,11 @@ packages:
   /punycode@2.3.0:
     resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
     engines: {node: '>=6'}
+    dev: true
 
   /queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+    dev: true
 
   /react-is@18.2.0:
     resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
@@ -4392,11 +4298,6 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
-  /require-from-string@2.0.2:
-    resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
-    engines: {node: '>=0.10.0'}
-    dev: false
-
   /resolve-from@4.0.0:
     resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
     engines: {node: '>=4'}
@@ -4420,6 +4321,7 @@ packages:
   /reusify@1.0.4:
     resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
     engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+    dev: true
 
   /rimraf@2.7.1:
     resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
@@ -4447,6 +4349,7 @@ packages:
     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
     dependencies:
       queue-microtask: 1.2.3
+    dev: true
 
   /sade@1.8.1:
     resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
@@ -4471,6 +4374,7 @@ packages:
 
   /safer-buffer@2.1.2:
     resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+    requiresBuild: true
     dev: true
     optional: true
 
@@ -4667,10 +4571,6 @@ packages:
       through2: 2.0.5
     dev: true
 
-  /sprintf-js@1.0.3:
-    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-    dev: false
-
   /ssri@10.0.5:
     resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==}
     engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -5104,6 +5004,7 @@ packages:
     engines: {node: '>=8.0'}
     dependencies:
       is-number: 7.0.0
+    dev: true
 
   /to-regex@3.0.2:
     resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
@@ -5264,6 +5165,7 @@ packages:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
       punycode: 2.3.0
+    dev: true
 
   /urix@0.1.0:
     resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
@@ -5319,7 +5221,7 @@ packages:
       es-module-lexer: 1.3.1
       fast-glob: 3.3.1
       magic-string: 0.30.2
-    dev: false
+    dev: true
 
   /vite@4.4.9(@types/node@20.5.0)(sass@1.66.1):
     resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==}
diff --git a/src/lib/components/FooterNav.svelte b/src/lib/components/FooterNav.svelte
index 453ea21b97a..62c3c59beee 100644
--- a/src/lib/components/FooterNav.svelte
+++ b/src/lib/components/FooterNav.svelte
@@ -4,7 +4,7 @@
 		<li class="aw-footer-nav-main-item">
 			<h5 class="aw-footer-nav-main-title aw-is-not-mobile">Quick starts</h5>
 			<button class="aw-footer-nav-button aw-is-only-mobile">
-				<span class="aw-caption-500">Products</span>
+				<span class="aw-caption-500">Quick starts</span>
 				<svg
 					class="aw-footer-nav-button-arrow"
 					xmlns="http://www.w3.org/2000/svg"
@@ -22,8 +22,8 @@
 				</svg>
 			</button>
 			<ul class="aw-footer-nav-secondary-list">
-				<li class="aw-footer-nav-secondary-item"><a href="/docs/quick-starts/nextjs">Next.js</a></li>
 				<li class="aw-footer-nav-secondary-item"><a href="/docs/quick-starts/flutter">Flutter</a></li>
+				<li class="aw-footer-nav-secondary-item"><a href="/docs/quick-starts/nextjs">Next.js</a></li>
 				<li class="aw-footer-nav-secondary-item"><a href="/docs/quick-starts/vuejs">Vue.js</a></li>
 				<li class="aw-footer-nav-secondary-item"><a href="/docs/quick-starts/sveltekit">SvelteKit</a></li>
 				<li class="aw-footer-nav-secondary-item"><a href="/docs/quick-starts/apple">Apple</a></li>
@@ -121,9 +121,9 @@
 			</ul>
 		</li>
 		<li class="aw-footer-nav-main-item">
-			<h5 class="aw-footer-nav-main-title aw-is-not-mobile">Legal</h5>
+			<h5 class="aw-footer-nav-main-title aw-is-not-mobile">Policies</h5>
 			<button class="aw-footer-nav-button aw-is-only-mobile">
-				<span class="aw-caption-500">Legal</span>
+				<span class="aw-caption-500">Policies</span>
 				<svg
 					class="aw-footer-nav-button-arrow"
 					xmlns="http://www.w3.org/2000/svg"
@@ -144,7 +144,6 @@
 				<li class="aw-footer-nav-secondary-item"><a href="/terms">Terms</a></li>
 				<li class="aw-footer-nav-secondary-item"><a href="/privacy">Privacy</a></li>
 				<li class="aw-footer-nav-secondary-item"><a href="/cookies">Cookies</a></li>
-				<li class="aw-footer-nav-secondary-item"><a href="/security">Security</a></li>
 			</ul>
 		</li>
 	</ul>
diff --git a/src/lib/components/MobileNav.svelte b/src/lib/components/MobileNav.svelte
index 27afd0b20d8..57b41aad60c 100644
--- a/src/lib/components/MobileNav.svelte
+++ b/src/lib/components/MobileNav.svelte
@@ -10,9 +10,9 @@
 <nav class="aw-side-nav aw-is-only-mobile" class:u-hide={!open}>
 	<div class="aw-side-nav-wrapper aw-u-padding-inline-16">
 		<div class="u-flex items-center u-gap-8">
-			<button class="aw-button is-secondary u-width-full-line">Sign Up</button>
+			<a href="https://cloud.appwrite.io/register" class="aw-button is-secondary u-width-full-line">Sign up</a>
 
-			<button class="aw-button u-width-full-line">Get Started</button>
+			<a href="https://cloud.appwrite.io" class="aw-button u-width-full-line">Get Started</a>
 		</div>
 		<div class="aw-side-nav-scroll">
 			<section>
@@ -28,11 +28,11 @@
 			</section>
 		</div>
 		<div class="aw-side-nav-mobile-footer-buttons">
-			<button class="aw-button is-text u-width-full-line">
+			<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text u-width-full-line">
 				<span class="aw-icon-star" aria-hidden="true" />
 				<span class="text">Star on GitHub</span>
-				<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-			</button>
+				<span class="aw-inline-tag aw-sub-body-400">33.2k</span>
+			</a>
 		</div>
 	</div>
 </nav>
diff --git a/src/lib/components/PreFooter.svelte b/src/lib/components/PreFooter.svelte
index b50d4406505..93d62228cb0 100644
--- a/src/lib/components/PreFooter.svelte
+++ b/src/lib/components/PreFooter.svelte
@@ -9,9 +9,9 @@
 		<h2 class="aw-display u-max-width-600 aw-u-text-align-center aw-u-color-text-primary">
 			Start building with Appwrite today
 		</h2>
-		<button class="aw-button is-transparent aw-u-cross-child-center">
+		<a href="https://cloud.appwrite.io" class="aw-button is-transparent aw-u-cross-child-center">
 			<span class="text">Get Started</span>
-		</button>
+		</a>
 	</section>
 	<section
 		class="aw-card is-transparent has-border-gradient aw-u-max-inline-width-584-mobile aw-u-margin-inline-auto-mobile aw-u-inline-width-100-percent-mobile"
@@ -20,7 +20,7 @@
 			<header class="aw-strip-plans-header">
 				<div class="aw-strip-plans-header-wrapper aw-u-row-gap-24">
 					<h3 class="aw-title aw-u-color-text-primary">Our Plans</h3>
-					<TabsList />
+					<!-- <TabsList /> -->
 				</div>
 			</header>
 			<TabContent tab="Cloud">
@@ -35,9 +35,9 @@
 							<p class="aw-strip-plans-info aw-caption-500">
 								For personal, passion projects and non-commercial use.
 							</p>
-							<button class="aw-button is-full-width-mobile aw-u-cross-child-end"
-								><span class="text">Get Started</span></button
-							>
+							<a href="https://cloud.appwrite.io/register" class="aw-button is-full-width-mobile aw-u-cross-child-end">
+								<span class="text">Get Started</span>
+							</a>
 						</div>
 					</li>
 					<li class="aw-strip-plans-item aw-strip-plans-container-query">
@@ -45,14 +45,14 @@
 							<div class="aw-strip-plans-plan">
 								<h4 class="title aw-description">Pro</h4>
 								<div class="aw-title aw-u-color-text-primary">$15</div>
-								<div class="info aw-caption-500">per user/month</div>
+								<div class="info aw-caption-500">per org member/month</div>
 							</div>
 							<p class="aw-strip-plans-info aw-caption-500">
 								For pro developers and production projects that need the ability to scale.
 							</p>
-							<button class="aw-button is-full-width-mobile is-secondary aw-u-cross-child-end"
-								><span class="text">Learn More</span></button
-							>
+							<button class="aw-button is-full-width-mobile is-secondary aw-u-cross-child-end" disabled>
+								<span class="text">Coming soon</span>
+							</button>
 						</div>
 					</li>
 					<li class="aw-strip-plans-item aw-strip-plans-container-query">
@@ -65,14 +65,14 @@
 							<p class="aw-strip-plans-info aw-caption-500">
 								For pro developers and production projects that need the ability to scale.
 							</p>
-							<button class="aw-button is-full-width-mobile is-secondary aw-u-cross-child-end"
-								><span class="text">Learn More</span></button
-							>
+							<button class="aw-button is-full-width-mobile is-secondary aw-u-cross-child-end" disabled>
+								<span class="text">Coming soon</span>
+							</button>
 						</div>
 					</li>
 				</ul>
 			</TabContent>
-			<TabContent tab="Self-Hosted">
+			<!-- <TabContent tab="Self-Hosted">
 				<ul class="aw-strip-plans">
 					<li class="aw-strip-plans-item aw-strip-plans-container-query">
 						<div class="aw-strip-plans-item-wrapper">
@@ -120,7 +120,7 @@
 						</div>
 					</li>
 				</ul>
-			</TabContent>
+			</TabContent> -->
 		</Tabs>
 	</section>
 </div>
diff --git a/src/lib/layouts/Docs.svelte b/src/lib/layouts/Docs.svelte
index 52bc8ec4f18..e150c66f2da 100644
--- a/src/lib/layouts/Docs.svelte
+++ b/src/lib/layouts/Docs.svelte
@@ -124,7 +124,7 @@
 					</div>
 					<div class="aw-main-header-end">
 						<div class="u-flex u-gap-8">
-							<button class="aw-button is-text">
+							<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text">
 								<svg
 									xmlns="http://www.w3.org/2000/svg"
 									width="18"
@@ -142,8 +142,8 @@
 									/>
 								</svg>
 								<span class="text">Star on GitHub</span>
-								<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-							</button>
+								<span class="aw-inline-tag aw-sub-body-400">33.2k</span>
+							</a>
 							<a href="https://cloud.appwrite.io/console" class="aw-button">
 								<span class="aw-sub-body-500">Go to console</span>
 							</a>
diff --git a/src/lib/layouts/Main.svelte b/src/lib/layouts/Main.svelte
index e50c3154f33..b92a0192a12 100644
--- a/src/lib/layouts/Main.svelte
+++ b/src/lib/layouts/Main.svelte
@@ -137,9 +137,9 @@
 		</div>
 		<div class="aw-mobile-header-end">
 			{#if !isMobileNavOpen}
-				<button class="aw-button">
+				<a href="https://cloud.appwrite.io" class="aw-button">
 					<span class="text">Get Started</span>
-				</button>
+				</a>
 			{/if}
 			<button
 				class="aw-button is-text"
@@ -199,15 +199,15 @@
 						</nav>
 					</div>
 					<div class="aw-main-header-end">
-						<button class="aw-button is-text">
+						<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text">
 							<span aria-hidden="true" class="aw-icon-star" />
 							<span class="text">Star on GitHub</span>
-							<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-						</button>
-						<button class="aw-button is-secondary">Sign Up</button>
-						<button class="aw-button">
+							<span class="aw-inline-tag aw-sub-body-400">33.2k</span>
+						</a>
+						<a href="https://cloud.appwrite.io/register" class="aw-button is-secondary">Sign up</a>
+						<a href="https://cloud.appwrite.io" class="aw-button">
 							<span class="text">Get Started</span>
-						</button>
+						</a>
 					</div>
 				</div>
 			</div>
diff --git a/src/lib/layouts/Sidebar.svelte b/src/lib/layouts/Sidebar.svelte
index 1b236657a93..0bfc4c0ee0c 100644
--- a/src/lib/layouts/Sidebar.svelte
+++ b/src/lib/layouts/Sidebar.svelte
@@ -94,11 +94,11 @@
 				<span class="text">Go to console</span>
 			</button>
 
-			<button class="aw-button is-text u-width-full-line">
+			<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text u-width-full-line">
 				<span class="aw-icon-star" aria-hidden="true" />
 				<span class="text">Star on GitHub</span>
-				<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-			</button>
+				<span class="aw-inline-tag aw-sub-body-400">33.2k</span>
+			</a>
 		</div>
 	</div>
 </nav>
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 1849c8758d4..96a33dbbb6d 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -68,9 +68,9 @@
 								Appwrite is the open-source development platform where you can build any application
 								at any scale, using the coding languages and tools you want.
 							</p>
-							<button class="aw-button is-full-width-mobile u-margin-block-start-32">
+							<a href="https://cloud.appwrite.io" class="aw-button is-full-width-mobile u-margin-block-start-32">
 								<span class="text">Get Started</span>
-							</button>
+							</a>
 						</div>
 					</div>
 				</section>
diff --git a/src/routes/community/+page.svelte b/src/routes/community/+page.svelte
index 7cde1c60f40..1ec10871b75 100644
--- a/src/routes/community/+page.svelte
+++ b/src/routes/community/+page.svelte
@@ -25,11 +25,11 @@
 								<button class="aw-button is-full-width-mobile">
 									<span class="text">Join our Discord</span>
 								</button>
-								<button class="aw-button is-secondary is-full-width-mobile">
+								<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-secondary is-full-width-mobile">
 									<span aria-hidden="true" class="aw-icon-star"></span>
 									<span>Star on GitHub</span>
-									<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-								</button>
+									<span class="aw-inline-tag aw-sub-body-400">33.2k</span>
+								</a>
 							</div>
 						</div>
 					</div>
diff --git a/src/routes/docs/Sidebar.svelte b/src/routes/docs/Sidebar.svelte
index f4198d397ae..0c0be23732f 100644
--- a/src/routes/docs/Sidebar.svelte
+++ b/src/routes/docs/Sidebar.svelte
@@ -4,6 +4,11 @@
 	const navigation: NavTree = [
 		{
 			items: [
+				{
+					label: 'Home',
+					href: '/docs',
+					icon: 'icon-home'
+				},
 				{
 					label: 'Quick Start',
 					href: '/docs/quick-starts',
@@ -89,11 +94,6 @@
 		{
 			label: 'Advanced',
 			items: [
-				{
-					label: 'Integration',
-					href: '/docs/advanced/integration',
-					icon: 'icon-puzzle'
-				},
 				{
 					label: 'Platform',
 					href: '/docs/advanced/platform',
diff --git a/src/routes/docs/apis/graphql/+page.markdoc b/src/routes/docs/apis/graphql/+page.markdoc
index 1a9c2806c05..8b788531e20 100644
--- a/src/routes/docs/apis/graphql/+page.markdoc
+++ b/src/routes/docs/apis/graphql/+page.markdoc
@@ -10,21 +10,395 @@ Appwrite supports multiple protocols for accessing the server, including [REST](
 
 {% info title="GraphQL Model Parameters" %}
 In Appwrite's GraphQL API, all internal model parameters are prefixed with `_` instead of `$` because `$` is reserved by GraphQL.
+
+For example, `$collectionId` in the REST API would be referenced as `_collectionId` in the GraphQL API.
 {% /info %}
 
 ## Requests {% #requests %}
 Although every query executes through the same endpoint, there are multiple ways to make a GraphQL request. All requests, however, share a common structure.
 
-Name		Type	Description
-query	required	string	The GraphQL query to execute.
-operationName	optional	string	If the query contains several named operations, controls which one to execute.
-variables	optional	object	An object containing variable names and values for the query. Variables are made available to your query with the $ prefix.
-
-
-For example, `$collectionId` in the REST API would be referenced as `_collectionId` in the GraphQL API.
+{% table %}
+* Name {% width=100 %}
+* &nbsp; {% width=100 %}
+* Type {% width=100 %}
+* Description
+---
+* `query`
+* required
+* string
+* The GraphQL query to execute.
+---
+* `operationName`
+* optional
+* string
+* If the query contains several named operations, controls which one to execute.
+---
+* `variables`
+* optional
+* object
+* An object containing variable names and values for the query. Variables are made available to your query with the $ prefix.
+---
+{% /table %}
 
 ### GET
 You can execute a GraphQL query via a GET request, passing a query and optionally operationName and variables as query parameters.
 
 ### POST
-There are multiple ways to make a GraphQL POST request, differentiated by content type.
\ No newline at end of file
+There are multiple ways to make a GraphQL POST request, differentiated by content type.
+
+#### JSON
+
+There are two ways to make requests with the `application/json` content type. You can send a JSON object containing a `query` and optionally `operationName` and `variables`, or an array of objects with the same structure.
+
+**object**
+
+```json
+{
+    "query": "",
+    "operationName": "",
+    "variables": {}
+}
+```
+
+**array**
+
+```json
+[
+    {
+        "query": "",
+        "operationName": "",
+        "variables": {}
+    }
+]
+```
+
+#### GraphQL
+
+The `application/graphql` content type can be used to send a query as the raw POST body.
+
+```graphql
+query GetAccount {
+    accountGet {
+        _id
+        email
+    }
+}
+```
+
+#### Multipart Form Data
+
+The `multipart/form-data` content type can be used to upload files via GraphQL. In this case, the form data must include the following parts in addition to the files to upload.
+
+{% table %}
+* Name {% width=100 %}
+* &nbsp; {% width=100 %}
+* Type {% width=100 %}
+* Description
+---
+* `operations`
+* required
+* string
+* JSON encoded GraphQL query and optionally operation name and variables. File variables should contain null values.
+---
+* `map`
+* required
+* string
+* JSON encoded map of form-data filenames to the operations dot-path to inject the file to, e.g. variables.file.
+---
+{% /table %}
+
+## Responses {% #responses %}
+
+A response to a GraphQL request will have the following structure.
+
+{% table %}
+* Name {% width=100 %}
+* &nbsp; {% width=100 %}
+* Type {% width=100 %}
+* Description
+---
+* `data`
+* 
+* object
+* The data returned by the query, maps requested field names to their results.
+---
+* `errors`
+* 
+* object[]
+* An array of errors that occurred during the request.
+---
+{% /table %}
+
+The data object will contain a map of requested field names to their results. If no data is returned, the object will not be present in the response.
+
+The errors array will contain error objects, each with their own **message** and **path**. The path will contain the field key that is null due to the error. If no errors occur, the array will not be present in the response.
+
+## Authentication {% #authentication %}
+GraphQL authenticates using Appwrite accounts and sessions. Both accounts and sessions can be created with GraphQL using the `accountCreate`, `accountCreateEmailSession`, `accountCreateAnonymousSession`, or `accountCreatePhoneSession` mutations.
+
+More information and examples of authenticating users can be found in the dedicated [authentication guide](/docs/products/auth).
+
+## GraphQL vs REST  {% #graphql-vs-rest %}
+
+There are two main features that make GraphQL appealing when compared to the REST API: **selection sets** and **query batching**.
+
+### Selection Sets
+
+Selection sets can be used to tell a GraphQL API exactly which fields of a particular resource you would like to receive in the response. The server will respond with only those fields, nothing more, nothing less. This gives you full control over what data comes into your application.
+
+For example, to retrieve only the email of a currently authenticated user, you could query the `accountGet` field, passing only email as the **field selection set**.
+
+```graphql
+query GetAccount {
+    accountGet {
+        _id
+        email
+    }
+}
+```
+
+Given this query, the GraphQL API will respond with:
+
+```graphql
+{
+    "data": {
+        "accountGet": {
+            "_id": "...",
+            "email": "..."
+        }
+    }
+}
+```
+
+This can be a useful feature for performance, network efficiency, and app responsiveness. As the processing happens on the server, the bandwidth consumed for the request can be dramatically reduced.
+
+## Query batching  {% #query-batching %}
+
+GraphQL allows sending multiple queries or mutations in the same request. There are two different ways to batch queries. The simplest way is to include multiple fields in a single query **or** mutation.
+
+```graphql
+query GetAccountAndLocale {
+    accountGet {
+        _id
+        email
+    }
+    localeGet {
+        ip
+    }
+}
+```
+
+If both field executions succeed, the response will contain a data key for each field, containing the values of the selected fields.
+
+```json
+{
+    "data": {
+        "accountGet": {
+            "_id": "...",
+            "email": "..."
+        },
+        "localeGet": {
+            "ip": "..."
+        }
+    }
+}
+```
+
+If there was no authenticated user, the `accountGet` field would fail to resolve. In such a case the value of the data key for that field will be null, and an object will be added to the errors array instead.
+
+```json
+{
+    "data": {
+        "accountGet": null,
+        "localeGet": {
+            "ip": "...",
+            "country": "..."
+        }
+    },
+    "errors": [
+        {
+            "message": "User (role: guest) missing scope (account)",
+            "path": ["accountGet"]
+        }
+    ]
+}
+```
+
+Batching with a single query or mutation has some down-sides. You can not mix and match queries and mutations within the same request unless you provide an operationName, in which case you can only execute one query per request.
+
+Additionally, all **variables** must be passed in the same object, which can be cumbersome and hard to maintain.
+
+The second way to batch is to pass an array of queries or mutations in the request. In this way, you can execute queries **and** mutations and keep variables separated for each.
+
+```graphql
+[
+    {
+        "query": "query GetAccount { accountGet{ email } }",
+    },
+    {
+        "query": "query GetLocale { localeGet { ip } }"
+    }
+]
+```
+
+## SDK Usage {% #sdk-usage %}
+
+Appwrite SDKs also support GraphQL in addition to the REST services.
+
+{% multicode %}
+```js
+import { Client, Graphql } from "appwrite";
+
+const client = new Client()
+    .setEndpoint('https://cloud.appwrite.io/v1') // Your Appwrite Endpoint
+    .setProject('[PROJECT_ID]');                // Your project ID
+
+const graphql = new Graphql(client);
+
+const mutation = graphql.mutation({
+    query: `mutation CreateAccount(
+        $email: String!,
+        $password: String!,
+        $name: String
+    ) {
+        accountCreate(
+            email: $email,
+            password: $password,
+            name: $name,
+            userId: "unique()"
+        ) {
+            _id
+        }
+    }`,
+    variables: {
+        email: '...',
+        password: '...',
+        name: '...'
+    }
+});
+
+mutation.then(response => {
+    console.log(response);
+}).catch(error => {
+    console.log(error);
+});
+```
+
+```dart
+import 'package:appwrite/appwrite.dart';
+
+final client = Client()
+    .setEndpoint('https://cloud.appwrite.io/v1') // Your Appwrite Endpoint
+    .setProject('[PROJECT_ID]');               // Your project ID
+
+final graphql = Graphql(client);
+
+Future mutation = graphql.mutation({
+    'query': '''mutation CreateAccount(
+        \$email: String!,
+        \$password: String!,
+        \$name: String
+    ) {
+        accountCreate(
+            email: \$email,
+            password: \$password,
+            name: \$name,
+            userId: "unique()"
+        ) {
+            _id
+        }
+    }''',
+    'variables': {
+        'email': '...',
+        'password': '...',
+        'name': '...'
+    }
+});
+
+mutation.then((response) {
+    print(response);
+}).catchError((error) {
+    print(error.message);
+});
+```
+
+```java
+import io.appwrite.Client
+import io.appwrite.services.Graphql
+
+val client = Client(context)
+    .setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
+    .setProject("[PROJECT_ID]")                // Your project ID
+
+val graphql = Graphql(client)
+
+try {
+    val response = graphql.mutation(mapOf(
+        "query" to """mutation CreateAccount(
+            ${'$'}email: String!,
+            ${'$'}password: String!,
+            ${'$'}name: String
+        ) {
+            accountCreate(
+                email: ${'$'}email,
+                password: ${'$'}password,
+                name: ${'$'}name,
+                userId: "unique()"
+            ) {
+                _id
+            }
+        }""",
+        "variables" to mapOf(
+            "email" to "...",
+            "password" to "...",
+            "name" to "..."
+        )
+    ))
+
+    Log.d(javaClass.name, response)
+} catch (ex: AppwriteException) {
+    ex.printStackTrace()
+}
+```
+
+```swift
+import Appwrite
+
+let client = Client()
+    .setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
+    .setProject("[PROJECT_ID]")                // Your project ID
+
+let graphql = Graphql(client)
+
+do {
+    let response = try await graphql.mutation([
+        "query": """
+            mutation CreateAccount(
+                $email: String!,
+                $password: String!,
+                $name: String
+            ) {
+                accountCreate(
+                    email: $email,
+                    password: $password,
+                    name: $name,
+                    userId: "unique()"
+
+                ) {
+                    _id
+                }
+            }
+        """,
+        "variables": [
+            "email": "...",
+            "password": "...",
+            "name": "..."
+        ]
+    ])
+
+    print(String(describing: response))
+} catch {
+    print(error.localizedDescription)
+}
+```
+{% /multicode %}
\ No newline at end of file
diff --git a/src/routes/docs/products/functions/runtimes/+page.markdoc b/src/routes/docs/products/functions/runtimes/+page.markdoc
index e9090d32fda..3d31d100622 100644
--- a/src/routes/docs/products/functions/runtimes/+page.markdoc
+++ b/src/routes/docs/products/functions/runtimes/+page.markdoc
@@ -10,13 +10,13 @@ Appwrite Functions supports an extensive list of runtimes to meet your unique te
 Below is a list of available Functions runtimes. The Appwrite team continually adds support for new runtimes.
 
 {% table %}
-* &nbsp; {% width=40 %}
-* Name
+* &nbsp; {% width=80 %}
+* Name {% width=120 %}
 * Versions
 * Architectures
 ---
-* {% only_dark %}![Node.js logo](/images/platforms/dark/nodejs.svg){% /only_dark %}
-{% only_light %}![Node.js logo](/images/platforms/nodejs.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/nodejs.svg" alt="Node.js logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/nodejs.svg" alt="Node.js logo" size="m" /%}{% /only_light %}
 * [Node.js](https://hub.docker.com/r/openruntimes/node/tags)
 * `node-14.5`
 `node-16.0`
@@ -25,24 +25,22 @@ Below is a list of available Functions runtimes. The Appwrite team continually a
 `node-20.0`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![PHP logo](/images/platforms/dark/php.svg){% /only_dark %}
-{% only_light %}![PHP logo](/images/platforms/php.svg){% /only_light %}
-* [PHP](https://hub.docker.com/r/openruntimes/php/tags)
-* `php-8.0`
-`php-8.1`
-`php-8.2`
-* x86 / arm64 / armv7 / armv8
+* {% only_dark %}{% icon_image src="/images/platforms/dark/bun.svg" alt="Bun logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/bun.svg" alt="Bun logo" size="m" /%}{% /only_light %}
+* [Bun](https://hub.docker.com/r/openruntimes/bun/tags)
+* `bun-1.0`
+* x86 / arm64
 ---
-* {% only_dark %}![Ruby logo](/images/platforms/dark/ruby.svg){% /only_dark %}
-{% only_light %}![Ruby logo](/images/platforms/ruby.svg){% /only_light %}
-* [Ruby](https://hub.docker.com/r/openruntimes/ruby/tags)
-* `ruby-3.0`
-`ruby-3.1`
-`ruby-3.2`
-* x86 / arm64 / armv7 / armv8
+* {% only_dark %}{% icon_image src="/images/platforms/dark/deno.svg" alt="Deno logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/deno.svg" alt="Deno logo" size="m" /%}{% /only_light %}
+* [Deno](https://hub.docker.com/r/openruntimes/deno/tags)
+* `deno-1.21`
+`deno-1.24`
+`deno-1.35`
+* x86
 ---
-* {% only_dark %}![Python logo](/images/platforms/dark/python.svg){% /only_dark %}
-{% only_light %}![Python logo](/images/platforms/python.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/python.svg" alt="Python logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/python.svg" alt="Python logo" size="m" /%}{% /only_light %}
 * [Python](https://hub.docker.com/r/openruntimes/python/tags)
 * `python-3.8` 
 `python-3.9`
@@ -50,16 +48,8 @@ Below is a list of available Functions runtimes. The Appwrite team continually a
 `python-3.11`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![Deno logo](/images/platforms/dark/deno.svg){% /only_dark %}
-{% only_light %}![Deno logo](/images/platforms/deno.svg){% /only_light %}
-* [Deno](https://hub.docker.com/r/openruntimes/deno/tags)
-* `deno-1.21`
-`deno-1.24`
-`deno-1.35`
-* x86
----
-* {% only_dark %}![Dart logo](/images/platforms/dark/dart.svg){% /only_dark %}
-{% only_light %}![Dart logo](/images/platforms/dart.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/dart.svg" alt="Dart logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/dart.svg" alt="Dart logo" size="m" /%}{% /only_light %}
 * [Dart](https://hub.docker.com/r/openruntimes/dart/tags)
 * `dart-2.15`
 `dart-2.16`
@@ -68,16 +58,32 @@ Below is a list of available Functions runtimes. The Appwrite team continually a
 `dart-3.0`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![.NET logo](/images/platforms/dark/dotnet.svg){% /only_dark %}
-{% only_light %}![.NET logo](/images/platforms/dotnet.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/php.svg" alt="PHP logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/php.svg" alt="PHP logo" size="m" /%}{% /only_light %}
+* [PHP](https://hub.docker.com/r/openruntimes/php/tags)
+* `php-8.0`
+`php-8.1`
+`php-8.2`
+* x86 / arm64 / armv7 / armv8
+---
+* {% only_dark %}{% icon_image src="/images/platforms/dark/ruby.svg" alt="Ruby logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/ruby.svg" alt="Ruby logo" size="m" /%}{% /only_light %}
+* [Ruby](https://hub.docker.com/r/openruntimes/ruby/tags)
+* `ruby-3.0`
+`ruby-3.1`
+`ruby-3.2`
+* x86 / arm64 / armv7 / armv8
+---
+* {% only_dark %}{% icon_image src="/images/platforms/dark/dotnet.svg" alt=".NET logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/dotnet.svg" alt=".NET logo" size="m" /%}{% /only_light %}
 * [.NET](https://hub.docker.com/r/openruntimes/dotnet/tags)
 * `dotnet-3.1` 
 `dotnet-6.0`
 `dotnet-7.0`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![Java logo](/images/platforms/dark/java.svg){% /only_dark %}
-{% only_light %}![Java logo](/images/platforms/java.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/java.svg" alt="Java logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/java.svg" alt="Java logo" size="m" /%}{% /only_light %}
 * [Java](https://hub.docker.com/r/openruntimes/java/tags)
 * `java-8.0`
 `java-11.0`
@@ -85,33 +91,27 @@ Below is a list of available Functions runtimes. The Appwrite team continually a
 `java-18.0`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![Swift logo](/images/platforms/dark/swift.svg){% /only_dark %}
-{% only_light %}![Swift logo](/images/platforms/swift.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/swift.svg" alt="Swift logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/swift.svg" alt="Swift logo" size="m" /%}{% /only_light %}
 * [Swift](https://hub.docker.com/r/openruntimes/swift/tags)
 * `swift-5.5`
 `swift-5.8`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![Kotlin logo](/images/platforms/dark/kotlin.svg){% /only_dark %}
-{% only_light %}![Kotlin logo](/images/platforms/kotlin.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/kotlin.svg" alt="Kotlin logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/kotlin.svg" alt="Kotlin logo" size="m" /%}{% /only_light %}
 * [Kotlin](https://hub.docker.com/r/openruntimes/kotlin/tags)
 * `kotlin-1.6`
 `kotlin-1.8`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![C++ logo](/images/platforms/dark/c.svg){% /only_dark %}
-{% only_light %}![C++ logo](/images/platforms/c.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/c.svg" alt="C++ logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/c.svg" alt="C++ logo" size="m" /%}{% /only_light %}
 * [C++](https://hub.docker.com/r/openruntimes/cpp/tags)
 * `cpp-17`
 `cpp-20`
 * x86 / arm64 / armv7 / armv8
 ---
-* {% only_dark %}![Bun logo](/images/platforms/dark/bun.svg){% /only_dark %}
-{% only_light %}![Bun logo](/images/platforms/bun.svg){% /only_light %}
-* [Bun](https://hub.docker.com/r/openruntimes/bun/tags)
-* `bun-1.0`
-* x86 / arm64
----
 {% /table %}
 
 ## Cloud support {% #cloud-support %}
diff --git a/src/routes/docs/sdks/+page.markdoc b/src/routes/docs/sdks/+page.markdoc
index 017fc83b7c3..2a225437f68 100644
--- a/src/routes/docs/sdks/+page.markdoc
+++ b/src/routes/docs/sdks/+page.markdoc
@@ -13,31 +13,31 @@ We're always working on improving and extending the current stack of available p
 Client libraries for integrating with Appwrite to build client-based applications and websites. Read one of the many [quick starts](/docs/quick-starts) guides for your framework of choice to start building your first application.
 
 {% table %}
-* &nbsp; {% width=40 %}
+* &nbsp; {% width=80 %}
 * Platform
 * GitHub Repository
-* &nbsp; {% width=60 %}
+* &nbsp; {% width=80 %}
 ---
-* {% only_dark %}![Javascript logo](/images/platforms/dark/javascript.svg){% /only_dark %}
-{% only_light %}![Javascript logo](/images/platforms/javascript.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/javascript.svg" alt="Javascript logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/javascript.svg" alt="Javascript logo" size="m" /%}{% /only_light %}
 * Web SDK `13.0.0`
 * [appwrite/sdk-for-web](https://github.com/appwrite/sdk-for-web)
 * 
 ---
-* {% only_dark %}![Flutter logo](/images/platforms/dark/flutter.svg){% /only_dark %}
-{% only_light %}![Flutter logo](/images/platforms/flutter.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/flutter.svg" alt="Flutter logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/flutter.svg" alt="Flutter logo" size="m" /%}{% /only_light %}
 * Flutter SDK `11.0.0`
 * [appwrite/sdk-for-flutter](https://github.com/appwrite/sdk-for-flutter)
 * 
 ---
-* {% only_dark %}![Apple logo](/images/platforms/dark/apple.svg){% /only_dark %}
-{% only_light %}![Apple logo](/images/platforms/apple.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/apple.svg" alt="Apple logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/apple.svg" alt="Apple logo" size="m" /%}{% /only_light %}
 * Apple SDK `4.0.0`
 * [appwrite/sdk-for-apple](https://github.com/appwrite/sdk-for-apple)
 * 
 ---
-* {% only_dark %}![Android logo](/images/platforms/dark/android.svg){% /only_dark %}
-{% only_light %}![Android logo](/images/platforms/android.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/android.svg" alt="Android logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/android.svg" alt="Android logo" size="m" /%}{% /only_light %}
 * Android SDK `4.0.0`
 * [appwrite/sdk-for-android](https://github.com/appwrite/sdk-for-android)
 * 
@@ -48,61 +48,61 @@ Client libraries for integrating with Appwrite to build client-based application
 Server libraries for integrating with Appwrite to build server side integrations or use inside your [Appwrite Functions](/docs/products/functions). Read one of the many [quick starts](/docs/quick-starts) guides for your language/runtime of choice to start building your first server integration.
 
 {% table %}
-* &nbsp; {% width=40 %}
+* &nbsp; {% width=80 %}
 * Platform
 * GitHub Repository
-* &nbsp; {% width=60 %}
+* &nbsp; {% width=80 %}
 ---
-* {% only_dark %}![Node.js logo](/images/platforms/dark/nodejs.svg){% /only_dark %}
-{% only_light %}![Node.js logo](/images/platforms/nodejs.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/nodejs.svg" alt="Node.js logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/nodejs.svg" alt="Node.js logo" size="m" /%}{% /only_light %}
 * Node.js SDK `11.0.0`
 * [appwrite/sdk-for-node](https://github.com/appwrite/sdk-for-node)
 * 
 ---
-* {% only_dark %}![Dart logo](/images/platforms/dark/dart.svg){% /only_dark %}
-{% only_light %}![Dart logo](/images/platforms/dart.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/dart.svg" alt="Dart logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/dart.svg" alt="Dart logo" size="m" /%}{% /only_light %}
 * Dart SDK `10.0.0`
 * [appwrite/sdk-for-dart](https://github.com/appwrite/sdk-for-dart)
 * 
 ---
-* {% only_dark %}![Python logo](/images/platforms/dark/python.svg){% /only_dark %}
-{% only_light %}![Python logo](/images/platforms/python.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/python.svg" alt="Python logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/python.svg" alt="Python logo" size="m" /%}{% /only_light %}
 * Python SDK `4.0.0`
 * [appwrite/sdk-for-python](https://github.com/appwrite/sdk-for-python)
 * 
 ---
-* {% only_dark %}![PHP logo](/images/platforms/dark/php.svg){% /only_dark %}
-{% only_light %}![PHP logo](/images/platforms/php.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/php.svg" alt="PHP logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/php.svg" alt="PHP logo" size="m" /%}{% /only_light %}
 * PHP SDK `10.0.0`
 * [appwrite/sdk-for-php](https://github.com/appwrite/sdk-for-php)
 * 
 ---
-* {% only_dark %}![Ruby logo](/images/platforms/dark/ruby.svg){% /only_dark %}
-{% only_light %}![Ruby logo](/images/platforms/ruby.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/ruby.svg" alt="Ruby logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/ruby.svg" alt="Ruby logo" size="m" /%}{% /only_light %}
 * Ruby SDK `10.0.0`
 * [appwrite/sdk-for-ruby](https://github.com/appwrite/sdk-for-ruby)
 * 
 ---
-* {% only_dark %}![.NET logo](/images/platforms/dark/dotnet.svg){% /only_dark %}
-{% only_light %}![.NET logo](/images/platforms/dotnet.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/dotnet.svg" alt=".NET logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/dotnet.svg" alt=".NET logo" size="m" /%}{% /only_light %}
 * .NET SDK `0.6.0`
 * [appwrite/sdk-for-dotnet](https://github.com/appwrite/sdk-for-dotnet)
 * `beta`
 ---
-* {% only_dark %}![Deno logo](/images/platforms/dark/deno.svg){% /only_dark %}
-{% only_light %}![Deno logo](/images/platforms/deno.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/deno.svg" alt="Deno logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/deno.svg" alt="Deno logo" size="m" /%}{% /only_light %}
 * Deno SDK `9.0.0`
 * [appwrite/sdk-for-deno](https://github.com/appwrite/sdk-for-deno)
 * 
 ---
-* {% only_dark %}![Kotlin logo](/images/platforms/dark/kotlin.svg){% /only_dark %}
-{% only_light %}![Kotlin logo](/images/platforms/kotlin.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/kotlin.svg" alt="Kotlin logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/kotlin.svg" alt="Kotlin logo" size="m" /%}{% /only_light %}
 * Kotlin SDK `4.0.0`
 * [appwrite/sdk-for-kotlin](https://github.com/appwrite/sdk-for-kotlin)
 * 
 ---
-* {% only_dark %}![Swift logo](/images/platforms/dark/swift.svg){% /only_dark %}
-{% only_light %}![Swift logo](/images/platforms/swift.svg){% /only_light %}
+* {% only_dark %}{% icon_image src="/images/platforms/dark/swift.svg" alt="Swift logo" size="m" /%}{% /only_dark %}
+{% only_light %}{% icon_image src="/images/platforms/swift.svg" alt="Swift logo" size="m" /%}{% /only_light %}
 * Swift SDK `4.0.0`
 * [appwrite/sdk-for-swift](https://github.com/appwrite/sdk-for-swift)
 * 
diff --git a/src/routes/heroes/+page.svelte b/src/routes/heroes/+page.svelte
index 88c6701fdce..63b8140b6bc 100644
--- a/src/routes/heroes/+page.svelte
+++ b/src/routes/heroes/+page.svelte
@@ -400,14 +400,14 @@
 								<img src="/images/icons/gradients/discussion.svg" width="40" height="40" alt="" />
 								<h3 class="aw-info-boxes-title">Channel access</h3>
 								<p class="aw-info-boxes-content">
-									Access to internal channel with Appwrite’s Engineering and DevRel team
+									Access to internal channel with Appwrite’s Engineering and DevRel teams
 								</p>
 							</li>
 							<li class="aw-info-boxes-item">
 								<img src="/images/icons/gradients/community.svg" width="40" height="40" alt="" />
 								<h3 class="aw-info-boxes-title">In-person gatherings</h3>
 								<p class="aw-info-boxes-content">
-									Invite to an in-person gathering (for top contributors)
+									Top contributors get invited to an in-person gathering with the Appwrite team
 								</p>
 							</li>
 							<li class="aw-info-boxes-item">
@@ -706,11 +706,9 @@
 							Have you been actively providing value for the Appwrite community? Apply now to join
 							our hero program! Applications are open every three months.
 						</p>
-						<button
-							class="aw-button is-transparent is-full-width-mobile aw-u-cross-child-center u-margin-block-start-20"
-						>
+						<a href="https://7nxwryuitoy.typeform.com/heroes-apply" target="_blank" class="aw-button is-transparent is-full-width-mobile aw-u-cross-child-center u-margin-block-start-20">
 							Become a Hero
-						</button>
+						</a>
 					</div>
 				</div>
 				<div class="aw-big-padding-section-level-2 u-position-relative">
diff --git a/src/routes/kitchensink/+page.svelte b/src/routes/kitchensink/+page.svelte
index f7445eab947..380c281090c 100644
--- a/src/routes/kitchensink/+page.svelte
+++ b/src/routes/kitchensink/+page.svelte
@@ -110,7 +110,7 @@
 			<li><div class="aw-numeric-badge">5</div></li>
 		</ul>
 		<div class="u-flex u-gap-16">
-			<button class="aw-button is-text">
+			<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text">
 				<svg
 					xmlns="http://www.w3.org/2000/svg"
 					width="18"
@@ -129,7 +129,7 @@
 				</svg>
 				<span class="text">Star on GitHub</span>
 				<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-			</button>
+			</a>
 
 			<button class="aw-button is-text is-only-icon">
 				<svg
@@ -256,7 +256,7 @@
 		</div>
 
 		<div class="u-flex u-gap-8">
-			<button class="aw-button is-text">
+			<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text">
 				<svg
 					xmlns="http://www.w3.org/2000/svg"
 					width="18"
@@ -275,7 +275,7 @@
 				</svg>
 				<span class="text">Star on GitHub</span>
 				<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-			</button>
+			</a>
 			<button class="aw-button is-secondary">
 				<span class="text">Sign Up</span>
 			</button>
@@ -284,7 +284,7 @@
 			</button>
 		</div>
 		<div class="u-flex u-gap-8">
-			<button class="aw-button is-text" disabled>
+			<a href="https://github.com/appwrite/appwrite/stargazers" target="_blank" class="aw-button is-text" disabled>
 				<svg
 					xmlns="http://www.w3.org/2000/svg"
 					width="18"
@@ -303,7 +303,7 @@
 				</svg>
 				<span class="text">Star on GitHub</span>
 				<span class="aw-inline-tag aw-sub-body-400">99.9k</span>
-			</button>
+			</a>
 			<button class="aw-button is-secondary" disabled>
 				<span class="text">Sign Up</span>
 			</button>
diff --git a/src/routes/pricing/+page.svelte b/src/routes/pricing/+page.svelte
index f2fc195697f..b988074d7c7 100644
--- a/src/routes/pricing/+page.svelte
+++ b/src/routes/pricing/+page.svelte
@@ -48,9 +48,9 @@
 											<p class="aw-main-body-500 u-margin-block-start-16">
 												For personal passion projects and non-commercial use
 											</p>
-											<button class="aw-button is-secondary is-full-width u-margin-block-start-32">
+											<a href="https://cloud.appwrite.io/register" class="aw-button is-secondary is-full-width u-margin-block-start-32">
 												<span class="aw-sub-body-500">Start building</span>
-											</button>
+											</a>
 										</header>
 										<div class="aw-pricing-cards-content">
 											<ul class="aw-checked-list-circle">
@@ -80,8 +80,8 @@
 											<p class="aw-main-body-500 u-margin-block-start-16">
 												For pro teams and production projects that need to scale
 											</p>
-											<button class="aw-button is-full-width u-margin-block-start-32">
-												<span class="aw-sub-body-500">Get Pro</span>
+											<button class="aw-button is-full-width u-margin-block-start-32" disabled>
+												<span class="aw-sub-body-500">Coming soon</span>
 											</button>
 										</header>
 										<div class="aw-pricing-cards-content">
@@ -119,8 +119,8 @@
 											<p class="aw-main-body-500 u-margin-block-start-16">
 												For scaling teams and agencies that need dedicated support.
 											</p>
-											<button class="aw-button is-secondary is-full-width u-margin-block-start-32">
-												<span class="aw-sub-body-500">Get Scale</span>
+											<button class="aw-button is-secondary is-full-width u-margin-block-start-32" disabled>
+												<span class="aw-sub-body-500">Coming soon</span>
 											</button>
 										</header>
 										<div class="aw-pricing-cards-content">
@@ -150,9 +150,9 @@
 								<p class="u-margin-block-start-8">
 									Large scale projects seeking greater performance, collaboration and security.
 								</p>
-								<button class="aw-button is-secondary u-margin-block-start-32">
-									<span>Contact Us</span>
-								</button>
+								<a href="/contact-us" class="aw-button is-secondary u-margin-block-start-32">
+									<span>Contact us</span>
+								</a>
 							</article>
 						</li>
 						<li>
@@ -166,9 +166,9 @@
 								<p class="u-margin-block-start-8">
 									We support OSS companies with a free Pro Plan. Get in touch to find out.
 								</p>
-								<button class="aw-button is-secondary u-margin-block-start-32">
-									<span>Contact Us</span>
-								</button>
+								<a href="/contact-us" class="aw-button is-secondary u-margin-block-start-32">
+									<span>Contact us</span>
+								</a>
 							</article>
 						</li>
 					</ul>
diff --git a/src/routes/pricing/compare-plans.svelte b/src/routes/pricing/compare-plans.svelte
index 252a4ae7536..e6550c753de 100644
--- a/src/routes/pricing/compare-plans.svelte
+++ b/src/routes/pricing/compare-plans.svelte
@@ -369,24 +369,24 @@
 						<div class="aw-mini-card">
 							<div class="u-flex u-cross-center u-gap-16 u-flex-wrap u-main-space-between">
 								<h4 class="aw-label aw-u-color-text-primary">Free</h4>
-								<button class="aw-button is-secondary">
+								<a href="https://cloud.appwrite.io/register" class="aw-button is-secondary">
 									<span class="aw-sub-body-500">Start building</span>
-								</button>
+								</a>
 							</div>
 						</div>
 						<div class="aw-mini-card">
 							<div class="u-flex u-cross-center u-gap-16 u-flex-wrap u-main-space-between">
 								<h4 class="aw-label aw-u-color-text-primary">Pro</h4>
-								<button class="aw-button">
-									<span class="aw-sub-body-500">Go Pro</span>
+								<button class="aw-button" disabled>
+									<span class="aw-sub-body-500">Coming soon</span>
 								</button>
 							</div>
 						</div>
 						<div class="aw-mini-card">
 							<div class="u-flex u-cross-center u-gap-16 u-flex-wrap u-main-space-between">
 								<h4 class="aw-label aw-u-color-text-primary">Scale</h4>
-								<button class="aw-button is-secondary">
-									<span class="aw-sub-body-500">Get Scale</span>
+								<button class="aw-button is-secondary" disabled>
+									<span class="aw-sub-body-500">Coming soon</span>
 								</button>
 							</div>
 						</div>
diff --git a/static/images/platforms/dark/android.svg b/static/images/platforms/dark/android.svg
index 1f94ee587e6..faed7d855e1 100644
--- a/static/images/platforms/dark/android.svg
+++ b/static/images/platforms/dark/android.svg
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M21.005 43.003c-4.053-.002-7.338 3.291-7.339 7.341l.005 30.736a7.338 7.338 0 007.342 7.343 7.33 7.33 0 007.338-7.342V50.34a7.345 7.345 0 00-7.346-7.337m59.193-27.602l5.123-9.355a1.023 1.023 0 00-.401-1.388 1.022 1.022 0 00-1.382.407l-5.175 9.453c-4.354-1.938-9.227-3.024-14.383-3.019-5.142-.005-10.013 1.078-14.349 3.005L44.45 5.075a1.01 1.01 0 00-1.378-.406 1.007 1.007 0 00-.404 1.38l5.125 9.349c-10.07 5.193-16.874 15.083-16.868 26.438l66.118-.008c.002-11.351-6.79-21.221-16.845-26.427M48.942 29.858a2.772 2.772 0 01.003-5.545 2.78 2.78 0 012.775 2.774 2.776 2.776 0 01-2.778 2.771m30.106-.005a2.77 2.77 0 01-2.772-2.771 2.793 2.793 0 012.773-2.778 2.79 2.79 0 012.767 2.779 2.767 2.767 0 01-2.768 2.77M31.195 44.39l.011 47.635a7.822 7.822 0 007.832 7.831l5.333.002.006 16.264c-.001 4.05 3.291 7.342 7.335 7.342 4.056 0 7.342-3.295 7.343-7.347l-.004-16.26 9.909-.003.004 16.263c0 4.047 3.293 7.346 7.338 7.338 4.056.003 7.344-3.292 7.343-7.344l-.005-16.259 5.352-.004a7.835 7.835 0 007.836-7.834l-.009-47.635-65.624.011zm83.134 5.943a7.338 7.338 0 00-7.341-7.339c-4.053-.004-7.337 3.287-7.337 7.342l.006 30.738a7.334 7.334 0 007.339 7.339 7.337 7.337 0 007.338-7.343l-.005-30.737z" style="fill: rgb(255, 255, 255);"/>
+  <path d="M21.005 43.003c-4.053-.002-7.338 3.291-7.339 7.341l.005 30.736a7.338 7.338 0 007.342 7.343 7.33 7.33 0 007.338-7.342V50.34a7.345 7.345 0 00-7.346-7.337m59.193-27.602l5.123-9.355a1.023 1.023 0 00-.401-1.388 1.022 1.022 0 00-1.382.407l-5.175 9.453c-4.354-1.938-9.227-3.024-14.383-3.019-5.142-.005-10.013 1.078-14.349 3.005L44.45 5.075a1.01 1.01 0 00-1.378-.406 1.007 1.007 0 00-.404 1.38l5.125 9.349c-10.07 5.193-16.874 15.083-16.868 26.438l66.118-.008c.002-11.351-6.79-21.221-16.845-26.427M48.942 29.858a2.772 2.772 0 01.003-5.545 2.78 2.78 0 012.775 2.774 2.776 2.776 0 01-2.778 2.771m30.106-.005a2.77 2.77 0 01-2.772-2.771 2.793 2.793 0 012.773-2.778 2.79 2.79 0 012.767 2.779 2.767 2.767 0 01-2.768 2.77M31.195 44.39l.011 47.635a7.822 7.822 0 007.832 7.831l5.333.002.006 16.264c-.001 4.05 3.291 7.342 7.335 7.342 4.056 0 7.342-3.295 7.343-7.347l-.004-16.26 9.909-.003.004 16.263c0 4.047 3.293 7.346 7.338 7.338 4.056.003 7.344-3.292 7.343-7.344l-.005-16.259 5.352-.004a7.835 7.835 0 007.836-7.834l-.009-47.635-65.624.011zm83.134 5.943a7.338 7.338 0 00-7.341-7.339c-4.053-.004-7.337 3.287-7.337 7.342l.006 30.738a7.334 7.334 0 007.339 7.339 7.337 7.337 0 007.338-7.343l-.005-30.737z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/angular.svg b/static/images/platforms/dark/angular.svg
index 1e059f95a1b..a741e720076 100644
--- a/static/images/platforms/dark/angular.svg
+++ b/static/images/platforms/dark/angular.svg
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M52.864 64h23.28l-12.375-25.877zM63.81 1.026l-59.257 20.854 9.363 77.637 49.957 27.457 50.214-27.828 9.36-77.635-59.637-20.485zm-15.766 73.974l-7.265 18.176-13.581.056 36.608-81.079-.07-.153h-.064l.001-.133.063.133h.14100000000000001l.123-.274v.274h-.124l-.069.153 38.189 81.417-13.074-.287-8.042-18.58-17.173.082" style="fill: rgb(255, 255, 255);"/>
+  <path d="M52.864 64h23.28l-12.375-25.877zM63.81 1.026l-59.257 20.854 9.363 77.637 49.957 27.457 50.214-27.828 9.36-77.635-59.637-20.485zm-15.766 73.974l-7.265 18.176-13.581.056 36.608-81.079-.07-.153h-.064l.001-.133.063.133h.14100000000000001l.123-.274v.274h-.124l-.069.153 38.189 81.417-13.074-.287-8.042-18.58-17.173.082" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/apple.svg b/static/images/platforms/dark/apple.svg
index ffe48d68a64..e9b87e2b294 100644
--- a/static/images/platforms/dark/apple.svg
+++ b/static/images/platforms/dark/apple.svg
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M97.905 67.885c.174 18.8 16.494 25.057 16.674 25.137-.138.44-2.607 8.916-8.597 17.669-5.178 7.568-10.553 15.108-19.018 15.266-8.318.152-10.993-4.934-20.504-4.934-9.508 0-12.479 4.776-20.354 5.086-8.172.31-14.395-8.185-19.616-15.724C15.822 94.961 7.669 66.8 18.616 47.791c5.438-9.44 15.158-15.417 25.707-15.571 8.024-.153 15.598 5.398 20.503 5.398 4.902 0 14.106-6.676 23.782-5.696 4.051.169 15.421 1.636 22.722 12.324-.587.365-13.566 7.921-13.425 23.639M82.272 21.719c4.338-5.251 7.258-12.563 6.462-19.836-6.254.251-13.816 4.167-18.301 9.416-4.02 4.647-7.54 12.087-6.591 19.216 6.971.54 14.091-3.542 18.43-8.796" style="fill: rgb(255, 255, 255);"/>
+  <path d="M97.905 67.885c.174 18.8 16.494 25.057 16.674 25.137-.138.44-2.607 8.916-8.597 17.669-5.178 7.568-10.553 15.108-19.018 15.266-8.318.152-10.993-4.934-20.504-4.934-9.508 0-12.479 4.776-20.354 5.086-8.172.31-14.395-8.185-19.616-15.724C15.822 94.961 7.669 66.8 18.616 47.791c5.438-9.44 15.158-15.417 25.707-15.571 8.024-.153 15.598 5.398 20.503 5.398 4.902 0 14.106-6.676 23.782-5.696 4.051.169 15.421 1.636 22.722 12.324-.587.365-13.566 7.921-13.425 23.639M82.272 21.719c4.338-5.251 7.258-12.563 6.462-19.836-6.254.251-13.816 4.167-18.301 9.416-4.02 4.647-7.54 12.087-6.591 19.216 6.971.54 14.091-3.542 18.43-8.796" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/bun.svg b/static/images/platforms/dark/bun.svg
index 4b582900894..353960b4ff6 100644
--- a/static/images/platforms/dark/bun.svg
+++ b/static/images/platforms/dark/bun.svg
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg id="Bun" viewBox="0 0 80 70" xmlns="http://www.w3.org/2000/svg">
   <title>Bun Logo</title>
-  <path id="Shadow" d="M71.09,20.74c-.16-.17-.33-.34-.5-.5s-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5A26.46,26.46,0,0,1,75.5,35.7c0,16.57-16.82,30.05-37.5,30.05-11.58,0-21.94-4.23-28.83-10.86l.5.5.5.5.5.5.5.5.5.5.5.5.5.5C19.55,65.3,30.14,69.75,42,69.75c20.68,0,37.5-13.48,37.5-30C79.5,32.69,76.46,26,71.09,20.74Z" style="fill: rgb(255, 255, 255);"/>
+  <path id="Shadow" d="M71.09,20.74c-.16-.17-.33-.34-.5-.5s-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5A26.46,26.46,0,0,1,75.5,35.7c0,16.57-16.82,30.05-37.5,30.05-11.58,0-21.94-4.23-28.83-10.86l.5.5.5.5.5.5.5.5.5.5.5.5.5.5C19.55,65.3,30.14,69.75,42,69.75c20.68,0,37.5-13.48,37.5-30C79.5,32.69,76.46,26,71.09,20.74Z" style="fill: rgb(228, 228, 231);"/>
   <g id="Body">
-    <path id="Light_Shine" data-name="Light Shine" d="M24.53,11.17C29,8.49,34.94,3.46,40.78,3.45A9.29,9.29,0,0,0,38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7c0,.4,0,.8,0,1.19C9.06,15.48,20.07,13.85,24.53,11.17Z" style="fill: rgb(255, 255, 255);"/>
-    <path id="Top" d="M35.12,5.53A16.41,16.41,0,0,1,29.49,18c-.28.25-.06.73.3.59,3.37-1.31,7.92-5.23,6-13.14C35.71,5,35.12,5.12,35.12,5.53Zm2.27,0A16.24,16.24,0,0,1,39,19c-.12.35.31.65.55.36C41.74,16.56,43.65,11,37.93,5,37.64,4.74,37.19,5.14,37.39,5.49Zm2.76-.17A16.42,16.42,0,0,1,47,17.12a.33.33,0,0,0,.65.11c.92-3.49.4-9.44-7.17-12.53C40.08,4.54,39.82,5.08,40.15,5.32ZM21.69,15.76a16.94,16.94,0,0,0,10.47-9c.18-.36.75-.22.66.18-1.73,8-7.52,9.67-11.12,9.45C21.32,16.4,21.33,15.87,21.69,15.76Z" style="fill-rule: evenodd; fill: rgb(255, 255, 255);"/>
-    <path id="Outline" d="M38,65.75C17.32,65.75.5,52.27.5,35.7c0-10,6.18-19.33,16.53-24.92,3-1.6,5.57-3.21,7.86-4.62,1.26-.78,2.45-1.51,3.6-2.19C32,1.89,35,.5,38,.5s5.62,1.2,8.9,3.14c1,.57,2,1.19,3.07,1.87,2.49,1.54,5.3,3.28,9,5.27C69.32,16.37,75.5,25.69,75.5,35.7,75.5,52.27,58.68,65.75,38,65.75ZM38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7,3,50.89,18.7,63.25,38,63.25S73,50.89,73,35.7C73,26.62,67.31,18.13,57.78,13,54,11,51.05,9.12,48.66,7.64c-1.09-.67-2.09-1.29-3-1.84C42.63,4,40.42,3,38,3Z" style="fill: rgb(255, 255, 255);"/>
+    <path id="Light_Shine" data-name="Light Shine" d="M24.53,11.17C29,8.49,34.94,3.46,40.78,3.45A9.29,9.29,0,0,0,38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7c0,.4,0,.8,0,1.19C9.06,15.48,20.07,13.85,24.53,11.17Z" style="fill: rgb(228, 228, 231);"/>
+    <path id="Top" d="M35.12,5.53A16.41,16.41,0,0,1,29.49,18c-.28.25-.06.73.3.59,3.37-1.31,7.92-5.23,6-13.14C35.71,5,35.12,5.12,35.12,5.53Zm2.27,0A16.24,16.24,0,0,1,39,19c-.12.35.31.65.55.36C41.74,16.56,43.65,11,37.93,5,37.64,4.74,37.19,5.14,37.39,5.49Zm2.76-.17A16.42,16.42,0,0,1,47,17.12a.33.33,0,0,0,.65.11c.92-3.49.4-9.44-7.17-12.53C40.08,4.54,39.82,5.08,40.15,5.32ZM21.69,15.76a16.94,16.94,0,0,0,10.47-9c.18-.36.75-.22.66.18-1.73,8-7.52,9.67-11.12,9.45C21.32,16.4,21.33,15.87,21.69,15.76Z" style="fill-rule: evenodd; fill: rgb(228, 228, 231);"/>
+    <path id="Outline" d="M38,65.75C17.32,65.75.5,52.27.5,35.7c0-10,6.18-19.33,16.53-24.92,3-1.6,5.57-3.21,7.86-4.62,1.26-.78,2.45-1.51,3.6-2.19C32,1.89,35,.5,38,.5s5.62,1.2,8.9,3.14c1,.57,2,1.19,3.07,1.87,2.49,1.54,5.3,3.28,9,5.27C69.32,16.37,75.5,25.69,75.5,35.7,75.5,52.27,58.68,65.75,38,65.75ZM38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7,3,50.89,18.7,63.25,38,63.25S73,50.89,73,35.7C73,26.62,67.31,18.13,57.78,13,54,11,51.05,9.12,48.66,7.64c-1.09-.67-2.09-1.29-3-1.84C42.63,4,40.42,3,38,3Z" style="fill: rgb(228, 228, 231);"/>
   </g>
   <g id="Mouth">
     <g id="Background-2" data-name="Background">
-      <path d="M45.05,43a8.93,8.93,0,0,1-2.92,4.71,6.81,6.81,0,0,1-4,1.88A6.84,6.84,0,0,1,34,47.71,8.93,8.93,0,0,1,31.12,43a.72.72,0,0,1,.8-.81H44.26A.72.72,0,0,1,45.05,43Z" style="fill: rgb(255, 255, 255);"/>
+      <path d="M45.05,43a8.93,8.93,0,0,1-2.92,4.71,6.81,6.81,0,0,1-4,1.88A6.84,6.84,0,0,1,34,47.71,8.93,8.93,0,0,1,31.12,43a.72.72,0,0,1,.8-.81H44.26A.72.72,0,0,1,45.05,43Z" style="fill: rgb(228, 228, 231);"/>
     </g>
     <g id="Tongue">
-      <path id="Background-3" data-name="Background" d="M34,47.79a6.91,6.91,0,0,0,4.12,1.9,6.91,6.91,0,0,0,4.11-1.9,10.63,10.63,0,0,0,1-1.07,6.83,6.83,0,0,0-4.9-2.31,6.15,6.15,0,0,0-5,2.78C33.56,47.4,33.76,47.6,34,47.79Z" style="fill: rgb(255, 255, 255);"/>
-      <path id="Outline-2" data-name="Outline" d="M34.16,47a5.36,5.36,0,0,1,4.19-2.08,6,6,0,0,1,4,1.69c.23-.25.45-.51.66-.77a7,7,0,0,0-4.71-1.93,6.36,6.36,0,0,0-4.89,2.36A9.53,9.53,0,0,0,34.16,47Z" style="fill: rgb(255, 255, 255);"/>
+      <path id="Background-3" data-name="Background" d="M34,47.79a6.91,6.91,0,0,0,4.12,1.9,6.91,6.91,0,0,0,4.11-1.9,10.63,10.63,0,0,0,1-1.07,6.83,6.83,0,0,0-4.9-2.31,6.15,6.15,0,0,0-5,2.78C33.56,47.4,33.76,47.6,34,47.79Z" style="fill: rgb(228, 228, 231);"/>
+      <path id="Outline-2" data-name="Outline" d="M34.16,47a5.36,5.36,0,0,1,4.19-2.08,6,6,0,0,1,4,1.69c.23-.25.45-.51.66-.77a7,7,0,0,0-4.71-1.93,6.36,6.36,0,0,0-4.89,2.36A9.53,9.53,0,0,0,34.16,47Z" style="fill: rgb(228, 228, 231);"/>
     </g>
-    <path id="Outline-3" data-name="Outline" d="M38.09,50.19a7.42,7.42,0,0,1-4.45-2,9.52,9.52,0,0,1-3.11-5.05,1.2,1.2,0,0,1,.26-1,1.41,1.41,0,0,1,1.13-.51H44.26a1.44,1.44,0,0,1,1.13.51,1.19,1.19,0,0,1,.25,1h0a9.52,9.52,0,0,1-3.11,5.05A7.42,7.42,0,0,1,38.09,50.19Zm-6.17-7.4c-.16,0-.2.07-.21.09a8.29,8.29,0,0,0,2.73,4.37A6.23,6.23,0,0,0,38.09,49a6.28,6.28,0,0,0,3.65-1.73,8.3,8.3,0,0,0,2.72-4.37.21.21,0,0,0-.2-.09Z" style="fill: rgb(255, 255, 255);"/>
+    <path id="Outline-3" data-name="Outline" d="M38.09,50.19a7.42,7.42,0,0,1-4.45-2,9.52,9.52,0,0,1-3.11-5.05,1.2,1.2,0,0,1,.26-1,1.41,1.41,0,0,1,1.13-.51H44.26a1.44,1.44,0,0,1,1.13.51,1.19,1.19,0,0,1,.25,1h0a9.52,9.52,0,0,1-3.11,5.05A7.42,7.42,0,0,1,38.09,50.19Zm-6.17-7.4c-.16,0-.2.07-.21.09a8.29,8.29,0,0,0,2.73,4.37A6.23,6.23,0,0,0,38.09,49a6.28,6.28,0,0,0,3.65-1.73,8.3,8.3,0,0,0,2.72-4.37.21.21,0,0,0-.2-.09Z" style="fill: rgb(228, 228, 231);"/>
   </g>
   <g id="Face">
-    <ellipse id="Right_Blush" data-name="Right Blush" cx="53.22" cy="40.18" rx="5.85" ry="3.44" style="fill: rgb(255, 255, 255);"/>
-    <ellipse id="Left_Bluch" data-name="Left Bluch" cx="22.95" cy="40.18" rx="5.85" ry="3.44" style="fill: rgb(255, 255, 255);"/>
-    <path id="Eyes" d="M25.7,38.8a5.51,5.51,0,1,0-5.5-5.51A5.51,5.51,0,0,0,25.7,38.8Zm24.77,0A5.51,5.51,0,1,0,45,33.29,5.5,5.5,0,0,0,50.47,38.8Z" style="fill-rule: evenodd; fill: rgb(255, 255, 255);"/>
-    <path id="Iris" d="M24,33.64a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,24,33.64Zm24.77,0a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,48.75,33.64Z" style="fill-rule: evenodd; fill: rgb(255, 255, 255);"/>
+    <ellipse id="Right_Blush" data-name="Right Blush" cx="53.22" cy="40.18" rx="5.85" ry="3.44" style="fill: rgb(228, 228, 231);"/>
+    <ellipse id="Left_Bluch" data-name="Left Bluch" cx="22.95" cy="40.18" rx="5.85" ry="3.44" style="fill: rgb(228, 228, 231);"/>
+    <path id="Eyes" d="M25.7,38.8a5.51,5.51,0,1,0-5.5-5.51A5.51,5.51,0,0,0,25.7,38.8Zm24.77,0A5.51,5.51,0,1,0,45,33.29,5.5,5.5,0,0,0,50.47,38.8Z" style="fill-rule: evenodd; fill: rgb(228, 228, 231);"/>
+    <path id="Iris" d="M24,33.64a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,24,33.64Zm24.77,0a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,48.75,33.64Z" style="fill-rule: evenodd; fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/c.svg b/static/images/platforms/dark/c.svg
index 3320c79e243..0adbc093445 100755
--- a/static/images/platforms/dark/c.svg
+++ b/static/images/platforms/dark/c.svg
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
   <g>
-    <path d="M115.4 30.7l-48.3-27.8c-.8-.5-1.9-.7-3.1-.7-1.2 0-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.4 1 3.5l106.8-62c-.6-1.2-1.5-2.1-2.4-2.7z" style="fill: rgb(255, 255, 255);"/>
-    <path d="M10.7 95.3c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7 1.2 0 2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4v-55.7c0-.9-.1-1.9-.6-2.8l-106.6 62z" style="fill: rgb(255, 255, 255);"/>
-    <path d="M85.3 76.1c-4.2 7.4-12.2 12.4-21.3 12.4-13.5 0-24.5-11-24.5-24.5s11-24.5 24.5-24.5c9.1 0 17.1 5 21.3 12.5l13-7.5c-6.8-11.9-19.6-20-34.3-20-21.8 0-39.5 17.7-39.5 39.5s17.7 39.5 39.5 39.5c14.6 0 27.4-8 34.2-19.8l-12.9-7.6z" style="fill: rgb(28, 33, 56);"/>
+    <path d="M 117.9 36.1 L 117.9 91.8 C 117.9 93.7 116.7 96.2 115 97.2 L 67 125.1 C 66.2 125.5 65.1 125.8 63.9 125.8 C 62.7 125.8 61.6 125.6 60.8 125.1 L 12.6 97.2 C 11.9 96.8 11.2 96.1 10.7 95.3 L 10.865 95.204 C 10.177 94.148 10 92.935 10 91.9 L 10 36.2 C 10 34.3 11.2 31.8 12.9 30.8 L 60.9 2.9 C 61.7 2.5 62.8 2.2 64 2.2 C 65.2 2.2 66.3 2.4 67.1 2.9 L 115.4 30.7 C 116.3 31.3 117.2 32.2 117.8 33.4 L 117.452 33.602 C 117.821 34.42 117.9 35.3 117.9 36.1 Z M 85.3 76.1 C 81.1 83.5 73.1 88.5 64 88.5 C 50.5 88.5 39.5 77.5 39.5 64 C 39.5 50.5 50.5 39.5 64 39.5 C 73.1 39.5 81.1 44.5 85.3 52 L 98.3 44.5 C 91.5 32.6 78.7 24.5 64 24.5 C 42.2 24.5 24.5 42.2 24.5 64 C 24.5 85.8 42.2 103.5 64 103.5 C 78.6 103.5 91.4 95.5 98.2 83.7 Z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M 98.881 83.521 L 98.633 83.95 C 91.749 95.837 78.732 104 64 104 C 52.998 104 42.934 99.492 35.721 92.279 C 28.509 85.066 24 75.002 24 64 C 24 52.998 28.509 42.934 35.721 35.721 C 42.934 28.508 52.998 24 64 24 C 78.834 24 91.851 32.265 98.734 44.252 L 98.982 44.684 L 85.11 52.687 L 84.864 52.244 C 80.749 44.834 72.968 40 64 40 C 57.352 40 51.416 42.666 47.041 47.041 C 42.666 51.416 40 57.352 40 64 C 40 70.648 42.666 76.584 47.041 80.959 C 51.416 85.334 57.352 88 64 88 C 72.968 88 80.75 83.165 84.865 75.853 L 85.114 75.41 Z M 64 89 C 57.148 89 50.834 86.166 46.334 81.666 C 41.834 77.166 39 70.852 39 64 C 39 57.148 41.834 50.834 46.334 46.334 C 50.834 41.834 57.148 39 64 39 C 73.233 39 81.132 43.969 85.483 51.317 L 97.617 44.317 C 90.841 32.743 78.566 25 64 25 C 53.202 25 43.516 29.342 36.429 36.429 C 29.341 43.516 25 53.202 25 64 C 25 74.798 29.341 84.484 36.429 91.571 C 43.516 98.659 53.202 103 64 103 C 78.467 103 90.743 95.355 97.518 83.878 L 85.478 76.785 C 81.127 84.036 73.233 89 64 89 Z" style="fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/csharp.svg b/static/images/platforms/dark/csharp.svg
index 99235e30083..511337b455c 100644
--- a/static/images/platforms/dark/csharp.svg
+++ b/static/images/platforms/dark/csharp.svg
@@ -1 +1,6 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><g><path fill="#9B4F96" d="M115.4 30.7l-48.3-27.8c-.8-.5-1.9-.7-3.1-.7-1.2 0-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.4 1 3.5l106.8-62c-.6-1.2-1.5-2.1-2.4-2.7z"/><path fill="#68217A" d="M10.7 95.3c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7 1.2 0 2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4v-55.7c0-.9-.1-1.9-.6-2.8l-106.6 62z"/><path fill="#fff" d="M85.3 76.1c-4.2 7.4-12.2 12.4-21.3 12.4-13.5 0-24.5-11-24.5-24.5s11-24.5 24.5-24.5c9.1 0 17.1 5 21.3 12.5l13-7.5c-6.8-11.9-19.6-20-34.3-20-21.8 0-39.5 17.7-39.5 39.5s17.7 39.5 39.5 39.5c14.6 0 27.4-8 34.2-19.8l-12.9-7.6zM97 66.2l.9-4.3h-4.2v-4.7h5.1l1.2-6.2h4.9l-1.2 6.1h3.8l1.2-6.1h4.8l-1.2 6.1h2.4v4.7h-3.3l-.9 4.3h4.2v4.7h-5.1l-1.2 6h-4.9l1.2-6h-3.8l-1.2 6h-4.8l1.2-6h-2.4v-4.7h3.3zm4.8 0h3.8l.9-4.3h-3.8l-.9 4.3z"/></g></svg>
+<?xml version="1.0" encoding="utf-8"?>
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
+  <g>
+    <path d="M 10.5 91.9 L 10.5 36.2 C 10.475 34.408 11.55 32.125 13.151 31.232 L 61.139 3.34 C 61.891 2.961 62.866 2.7 64 2.7 C 65.155 2.7 66.138 2.867 66.851 3.333 L 115.139 31.127 C 115.971 31.671 116.571 32.464 117.146 33.622 L 117.383 34.099 L 117.392 34.094 C 117.661 34.767 117.706 35.48 117.705 36.191 L 117.705 91.891 C 117.73 93.683 116.655 95.966 115.054 96.859 L 67.066 124.751 C 66.314 125.13 65.339 125.391 64.205 125.391 C 63.05 125.391 62.068 125.224 61.355 124.758 L 13.153 96.857 C 12.507 96.498 11.897 95.885 11.432 95.13 L 11.17 94.704 L 11.144 94.72 C 10.613 93.823 10.497 92.827 10.5 91.9 Z M 97.39 61.9 L 97.5 61.9 L 97.5 63.811 L 97.126 65.6 L 93.2 65.6 L 93.2 71.3 L 95.49 71.3 L 94.29 77.3 L 100.11 77.3 L 101.31 71.3 L 104.09 71.3 L 102.89 77.3 L 108.81 77.3 L 110.01 71.3 L 115.2 71.3 L 115.2 65.6 L 111.115 65.6 L 111.806 62.3 L 115.2 62.3 L 115.2 56.6 L 112.908 56.6 L 114.108 50.5 L 108.289 50.5 L 107.089 56.6 L 104.308 56.6 L 105.508 50.5 L 99.588 50.5 L 98.388 56.7 L 93.2 56.7 L 93.2 62.4 L 97.285 62.4 Z M 85.114 75.41 L 84.865 75.853 C 80.75 83.165 72.968 88 64 88 C 57.352 88 51.416 85.334 47.041 80.959 C 42.666 76.584 40 70.648 40 64 C 40 57.352 42.666 51.416 47.041 47.041 C 51.416 42.666 57.352 40 64 40 C 72.968 40 80.749 44.834 84.864 52.244 L 85.11 52.687 L 98.982 44.684 L 98.734 44.252 C 91.851 32.265 78.834 24 64 24 C 52.998 24 42.934 28.508 35.721 35.721 C 28.509 42.934 24 52.998 24 64 C 24 75.002 28.509 85.066 35.721 92.279 C 42.934 99.492 52.998 104 64 104 C 78.732 104 91.749 95.837 98.633 83.95 L 98.881 83.521 Z M 103.106 62.4 L 105.885 62.4 L 105.194 65.7 L 102.415 65.7 Z" style="fill: rgb(228, 228, 231);"/>
+  </g>
+</svg>
diff --git a/static/images/platforms/dark/dart.svg b/static/images/platforms/dark/dart.svg
index 7cd9beb9749..bedb1840aaf 100644
--- a/static/images/platforms/dark/dart.svg
+++ b/static/images/platforms/dark/dart.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <text transform="matrix(1, 0, 0, 1, 69.784261, 14.418589)" style="fill: rgb(28, 33, 56); font-family: Roboto; font-size: 36px; stroke: rgb(255, 255, 255); stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; white-space: pre;"/>
-  <path d="M 28.456 96.488 L 8.732 76.765 C 6.392 74.365 4.943 70.975 4.943 67.661 C 4.943 66.127 5.808 63.728 6.46 62.355 L 24.666 24.432 L 28.456 96.488 Z" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
-  <path d="M 95.968 28.222 L 76.244 8.498 C 74.523 6.769 70.937 4.709 67.904 4.709 C 65.293 4.709 62.734 5.234 61.08 6.226 L 24.676 24.432 L 95.968 28.222 Z" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
-  <polygon points="51.969 120.001 99.757 120.001 99.757 99.523 64.106 88.14 31.49 99.523" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
-  <path d="M 24.666 85.868 C 24.666 91.953 25.43 93.445 28.456 96.488 L 31.49 99.523 L 99.757 99.523 L 66.386 61.6 L 24.666 24.432 L 24.666 85.868 Z" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
-  <path d="M 85.347 24.424 L 24.666 24.424 L 99.757 99.515 L 120.235 99.515 L 120.235 52.489 L 95.959 28.214 C 92.552 24.797 89.527 24.424 85.347 24.424 Z" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
-  <path opacity="0.2" enable-background="new    " d="M 29.219 97.243 C 26.184 94.2 25.43 91.199 25.43 85.868 L 25.43 25.187 L 24.676 24.432 L 24.676 85.868 C 24.666 91.199 24.666 92.674 29.219 97.243 L 31.49 99.515 L 31.49 99.515 L 29.219 97.243 Z" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
-  <path opacity="0.2" enable-background="new    " d="M 95.968 28.222 C 92.205 24.458 89.127 24.432 84.593 24.432 L 24.676 24.432 L 25.43 25.187 L 84.593 25.187 C 86.856 25.187 92.569 24.806 95.968 28.222 L 95.968 28.222 Z" style="stroke-linecap: square; stroke-linejoin: round; fill: rgb(28, 33, 56); stroke: rgb(255, 255, 255); stroke-width: 7px;"/>
+  <text transform="matrix(1, 0, 0, 1, 69.784261, 14.418589)" style="fill: rgb(228, 228, 231); font-family: Roboto; font-size: 36px; stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; white-space: pre;"/>
+  <path d="M 28.456 96.488 L 8.732 76.765 C 6.392 74.365 4.943 70.975 4.943 67.661 C 4.943 66.127 5.808 63.728 6.46 62.355 L 24.666 24.432 L 28.456 96.488 Z" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
+  <path d="M 95.968 28.222 L 76.244 8.498 C 74.523 6.769 70.937 4.709 67.904 4.709 C 65.293 4.709 62.734 5.234 61.08 6.226 L 24.676 24.432 L 95.968 28.222 Z" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
+  <polygon points="51.969 120.001 99.757 120.001 99.757 99.523 64.106 88.14 31.49 99.523" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
+  <path d="M 24.666 85.868 C 24.666 91.953 25.43 93.445 28.456 96.488 L 31.49 99.523 L 99.757 99.523 L 66.386 61.6 L 24.666 24.432 L 24.666 85.868 Z" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
+  <path d="M 85.347 24.424 L 24.666 24.424 L 99.757 99.515 L 120.235 99.515 L 120.235 52.489 L 95.959 28.214 C 92.552 24.797 89.527 24.424 85.347 24.424 Z" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
+  <path opacity="0.2" enable-background="new    " d="M 29.219 97.243 C 26.184 94.2 25.43 91.199 25.43 85.868 L 25.43 25.187 L 24.676 24.432 L 24.676 85.868 C 24.666 91.199 24.666 92.674 29.219 97.243 L 31.49 99.515 L 31.49 99.515 L 29.219 97.243 Z" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
+  <path opacity="0.2" enable-background="new    " d="M 95.968 28.222 C 92.205 24.458 89.127 24.432 84.593 24.432 L 24.676 24.432 L 25.43 25.187 L 84.593 25.187 C 86.856 25.187 92.569 24.806 95.968 28.222 L 95.968 28.222 Z" style="stroke-linecap: square; stroke-linejoin: round; stroke-width: 7px; fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/deno.svg b/static/images/platforms/dark/deno.svg
index 569634a89e2..e0c2d6b47d6 100644
--- a/static/images/platforms/dark/deno.svg
+++ b/static/images/platforms/dark/deno.svg
@@ -5,8 +5,8 @@
   </defs>
   <title>Artboard 3</title>
   <g transform="matrix(0.013781, 0, 0, -0.01394, -5.049645, 134.455688)" fill="#000000" stroke="none" style="">
-    <path d="M4720 9174 c-19 -2 -80 -9 -135 -14 -782 -82 -1552 -413 -2180 -939 -116 -96 -380 -360 -476 -476 -520 -621 -824 -1318 -936 -2143 -25 -183 -25 -801 0 -984 112 -825 416 -1522 936 -2143 96 -116 360 -380 476 -476 621 -520 1318 -824 2143 -936 183 -25 801 -25 984 0 825 112 1522 416 2143 936 116 96 380 360 476 476 520 621 824 1318 936 2143 25 183 25 801 0 984 -112 825 -416 1522 -936 2143 -96 116 -360 380 -476 476 -619 518 -1323 826 -2137 935 -88 12 -216 17 -453 19 -181 2 -346 1 -365 -1z m50 -432 c0 -117 8 -371 19 -612 6 -118 13 -287 16 -375 11 -312 44 -1131 49 -1204 l5 -73 -45 5 c-25 2 -48 8 -52 11 -3 4 -10 73 -14 154 -18 356 -77 1737 -83 1939 l-6 222 28 4 c15 2 40 5 56 6 l27 1 0 -78z m957 24 c1 -1 4 -303 7 -671 4 -369 9 -700 12 -736 3 -37 2 -69 -3 -71 -4 -3 -29 -3 -54 0 l-46 4 -7 291 c-4 161 -9 339 -11 397 -8 177 -15 778 -9 793 4 11 15 12 57 5 29 -6 53 -11 54 -12z m-2313 -335 c6 -9 53 -560 111 -1281 19 -245 38 -469 41 -497 5 -51 4 -53 -28 -73 -18 -11 -36 -20 -40 -20 -3 0 -9 26 -12 58 -14 130 -68 758 -106 1212 -22 267 -42 506 -45 532 -5 44 -4 48 22 62 32 17 50 20 57 7z m2753 -201 c28 -10 31 -15 37 -72 10 -100 7 -578 -4 -578 -29 0 -89 34 -94 53 -3 12 -6 154 -6 315 0 325 -4 306 67 282z m-1847 -47 c0 -27 7 -176 15 -333 8 -157 17 -356 21 -442 7 -174 9 -168 -58 -172 -33 -1 -33 -1 -35 49 -2 28 -7 115 -13 195 -5 80 -17 253 -25 385 -8 132 -18 263 -21 291 -6 50 -5 52 22 62 16 6 44 11 62 11 32 1 32 1 32 -46z m2774 -137 l34 -14 7 -134 c3 -73 5 -231 3 -350 l-3 -218 -42 21 -42 20 -3 332 c-2 183 -1 338 1 345 4 15 4 15 45 -2z m-1826 -131 c6 -6 20 -491 21 -737 l1 -148 -47 7 c-27 3 -49 6 -50 7 -3 2 -33 743 -33 815 l0 74 51 -6 c29 -4 54 -9 57 -12z m2303 -71 c12 -14 14 -233 17 -1441 3 -1387 3 -1423 -15 -1423 -11 0 -26 6 -35 13 -15 11 -17 132 -22 1317 -4 718 -9 1370 -12 1449 l-6 144 29 -21 c17 -12 36 -29 44 -38z m-897 -205 c5 -4 10 -61 11 -126 5 -221 6 -1576 1 -1580 -2 -2 -20 3 -40 11 l-36 15 0 851 0 850 28 -6 c15 -4 31 -10 36 -15z m-2760 -56 c3 -27 8 -88 11 -138 3 -49 10 -161 16 -248 12 -176 10 -187 -47 -187 -30 0 -34 3 -38 33 -10 59 -45 551 -40 559 5 7 57 25 81 27 6 1 14 -20 17 -46z m-1654 -255 c11 -106 33 -328 49 -493 17 -165 31 -305 31 -311 0 -12 -77 -50 -85 -42 -5 5 -105 890 -105 930 0 24 77 125 87 114 3 -2 13 -91 23 -198z m3921 -105 l29 -17 1 -216 c1 -118 3 -250 3 -293 2 -90 -9 -105 -63 -86 l-31 11 0 86 c0 48 -3 187 -7 310 l-6 222 23 0 c12 0 35 -8 51 -17z m-3482 -388 c18 -192 47 -516 66 -720 l34 -370 -39 -39 -38 -39 -7 79 c-4 44 -24 248 -45 454 -21 206 -51 505 -66 664 l-28 288 39 36 c35 33 39 34 46 16 4 -10 21 -176 38 -369z m-749 -121 c22 -197 80 -721 130 -1164 50 -443 97 -870 106 -950 8 -80 22 -201 30 -270 14 -117 14 -125 -2 -137 -24 -18 -34 -16 -34 5 0 9 -9 85 -20 167 -18 137 -48 369 -115 890 -14 105 -41 314 -60 465 -20 151 -49 376 -65 500 -16 124 -43 336 -60 473 -18 136 -29 257 -26 270 7 27 66 121 72 115 2 -3 22 -166 44 -364z m-306 -431 c15 -120 43 -339 62 -488 19 -148 43 -333 54 -410 l19 -140 -21 -18 c-12 -10 -24 -14 -28 -10 -4 4 -12 44 -18 88 -6 44 -43 301 -83 570 l-71 490 23 68 c12 37 25 67 28 67 4 0 19 -98 35 -217z m5490 131 c14 -14 16 -76 16 -535 l0 -519 -28 0 c-61 0 -60 -15 -64 553 l-3 517 32 0 c17 0 39 -7 47 -16z m-2189 -179 c226 -34 423 -97 618 -197 126 -65 186 -110 326 -244 208 -199 336 -373 456 -619 175 -358 243 -675 329 -1525 39 -381 90 -1072 101 -1355 3 -82 10 -217 16 -300 11 -176 24 -152 -131 -227 -215 -104 -422 -176 -695 -243 -334 -82 -550 -108 -880 -109 l-240 -1 2 115 c0 63 6 210 12 325 30 557 24 1260 -15 1650 -22 224 -65 496 -89 556 -5 13 18 24 117 58 181 63 338 142 362 181 43 74 -34 180 -132 180 -17 0 -68 -18 -115 -39 -224 -103 -673 -224 -932 -251 -179 -19 -457 -8 -650 27 -105 19 -293 90 -450 171 -181 94 -292 219 -325 367 -18 80 -13 240 10 330 25 99 95 243 159 327 285 375 873 700 1476 814 192 36 464 40 670 9z m3085 -31 c36 -15 40 -19 40 -53 2 -273 -4 -897 -9 -923 -1 -9 -53 -10 -75 -2 -14 5 -16 59 -16 500 0 316 4 494 10 494 5 0 28 -7 50 -16z m437 -549 l36 -15 -7 -828 c-8 -1055 -9 -1086 -47 -1177 -62 -149 -59 -179 -53 475 2 327 7 658 9 735 2 77 4 294 5 483 0 228 3 342 10 342 6 0 27 -7 47 -15z m-6014 -249 c6 -81 4 -89 -25 -153 l-32 -68 -12 100 c-19 160 -19 167 19 191 17 12 35 20 38 18 3 -2 9 -42 12 -88z m-618 -603 c9 -82 79 -626 115 -893 54 -413 58 -472 34 -447 -3 3 -26 142 -50 309 -156 1078 -155 1071 -142 1079 27 18 36 8 43 -48z m720 -458 c6 -25 35 -296 35 -329 0 -28 -36 -54 -52 -38 -5 5 -18 90 -28 188 -11 99 -22 202 -25 229 l-6 50 35 -40 c20 -22 38 -49 41 -60z m807 -377 c11 -10 18 -50 27 -158 15 -195 17 -180 -24 -180 -42 0 -41 -3 -55 173 -14 179 -14 177 13 177 13 0 30 -6 39 -12z m792 -15 c2 -10 7 -70 11 -133 3 -63 12 -205 20 -315 28 -404 29 -455 12 -455 -19 0 -21 15 -43 300 -8 118 -23 304 -33 413 -9 109 -15 200 -12 202 11 12 40 3 45 -12z m-1880 -192 c6 -9 44 -329 91 -766 14 -132 28 -259 31 -283 l5 -43 -25 16 c-19 13 -26 26 -26 49 0 63 -43 478 -76 732 -19 144 -34 271 -34 283 0 21 24 29 34 12z m5771 -418 l-7 -418 -25 -37 c-57 -84 -54 -100 -51 368 l2 429 37 38 c20 20 40 37 44 37 3 0 3 -188 0 -417z m-925 -663 c5 -581 4 -626 -12 -644 -10 -11 -19 -18 -22 -15 -7 8 -17 1275 -9 1282 4 4 14 6 23 5 13 -3 16 -74 20 -628z m-3266 398 c7 -62 32 -359 42 -499 6 -94 6 -97 -16 -104 -12 -4 -26 -3 -30 2 -7 7 -29 229 -56 571 l-7 82 31 0 c29 0 31 -2 36 -52z m-786 -350 c7 -7 12 -32 12 -57 0 -26 12 -161 25 -301 38 -383 41 -435 24 -425 -26 15 -49 38 -44 44 2 4 -2 54 -10 111 -7 58 -16 152 -20 210 -4 58 -13 164 -21 235 -19 175 -18 195 4 195 10 0 23 -5 30 -12z m473 -673 c3 -22 9 -104 13 -182 7 -150 4 -161 -37 -130 -12 9 -20 47 -32 161 -21 206 -22 198 17 194 29 -3 33 -7 39 -43z" style="fill: rgb(255, 255, 255);"/>
-    <path d="M3184 5756 c-104 -45 -112 -186 -14 -236 71 -36 143 -19 180 43 70 114 -44 246 -166 193z" style="fill: rgb(255, 255, 255);"/>
-    <path d="M3862 5660 c-96 -59 -96 -201 0 -260 95 -57 218 18 218 132 0 110 -126 184 -218 128z" style="fill: rgb(255, 255, 255);"/>
+    <path d="M4720 9174 c-19 -2 -80 -9 -135 -14 -782 -82 -1552 -413 -2180 -939 -116 -96 -380 -360 -476 -476 -520 -621 -824 -1318 -936 -2143 -25 -183 -25 -801 0 -984 112 -825 416 -1522 936 -2143 96 -116 360 -380 476 -476 621 -520 1318 -824 2143 -936 183 -25 801 -25 984 0 825 112 1522 416 2143 936 116 96 380 360 476 476 520 621 824 1318 936 2143 25 183 25 801 0 984 -112 825 -416 1522 -936 2143 -96 116 -360 380 -476 476 -619 518 -1323 826 -2137 935 -88 12 -216 17 -453 19 -181 2 -346 1 -365 -1z m50 -432 c0 -117 8 -371 19 -612 6 -118 13 -287 16 -375 11 -312 44 -1131 49 -1204 l5 -73 -45 5 c-25 2 -48 8 -52 11 -3 4 -10 73 -14 154 -18 356 -77 1737 -83 1939 l-6 222 28 4 c15 2 40 5 56 6 l27 1 0 -78z m957 24 c1 -1 4 -303 7 -671 4 -369 9 -700 12 -736 3 -37 2 -69 -3 -71 -4 -3 -29 -3 -54 0 l-46 4 -7 291 c-4 161 -9 339 -11 397 -8 177 -15 778 -9 793 4 11 15 12 57 5 29 -6 53 -11 54 -12z m-2313 -335 c6 -9 53 -560 111 -1281 19 -245 38 -469 41 -497 5 -51 4 -53 -28 -73 -18 -11 -36 -20 -40 -20 -3 0 -9 26 -12 58 -14 130 -68 758 -106 1212 -22 267 -42 506 -45 532 -5 44 -4 48 22 62 32 17 50 20 57 7z m2753 -201 c28 -10 31 -15 37 -72 10 -100 7 -578 -4 -578 -29 0 -89 34 -94 53 -3 12 -6 154 -6 315 0 325 -4 306 67 282z m-1847 -47 c0 -27 7 -176 15 -333 8 -157 17 -356 21 -442 7 -174 9 -168 -58 -172 -33 -1 -33 -1 -35 49 -2 28 -7 115 -13 195 -5 80 -17 253 -25 385 -8 132 -18 263 -21 291 -6 50 -5 52 22 62 16 6 44 11 62 11 32 1 32 1 32 -46z m2774 -137 l34 -14 7 -134 c3 -73 5 -231 3 -350 l-3 -218 -42 21 -42 20 -3 332 c-2 183 -1 338 1 345 4 15 4 15 45 -2z m-1826 -131 c6 -6 20 -491 21 -737 l1 -148 -47 7 c-27 3 -49 6 -50 7 -3 2 -33 743 -33 815 l0 74 51 -6 c29 -4 54 -9 57 -12z m2303 -71 c12 -14 14 -233 17 -1441 3 -1387 3 -1423 -15 -1423 -11 0 -26 6 -35 13 -15 11 -17 132 -22 1317 -4 718 -9 1370 -12 1449 l-6 144 29 -21 c17 -12 36 -29 44 -38z m-897 -205 c5 -4 10 -61 11 -126 5 -221 6 -1576 1 -1580 -2 -2 -20 3 -40 11 l-36 15 0 851 0 850 28 -6 c15 -4 31 -10 36 -15z m-2760 -56 c3 -27 8 -88 11 -138 3 -49 10 -161 16 -248 12 -176 10 -187 -47 -187 -30 0 -34 3 -38 33 -10 59 -45 551 -40 559 5 7 57 25 81 27 6 1 14 -20 17 -46z m-1654 -255 c11 -106 33 -328 49 -493 17 -165 31 -305 31 -311 0 -12 -77 -50 -85 -42 -5 5 -105 890 -105 930 0 24 77 125 87 114 3 -2 13 -91 23 -198z m3921 -105 l29 -17 1 -216 c1 -118 3 -250 3 -293 2 -90 -9 -105 -63 -86 l-31 11 0 86 c0 48 -3 187 -7 310 l-6 222 23 0 c12 0 35 -8 51 -17z m-3482 -388 c18 -192 47 -516 66 -720 l34 -370 -39 -39 -38 -39 -7 79 c-4 44 -24 248 -45 454 -21 206 -51 505 -66 664 l-28 288 39 36 c35 33 39 34 46 16 4 -10 21 -176 38 -369z m-749 -121 c22 -197 80 -721 130 -1164 50 -443 97 -870 106 -950 8 -80 22 -201 30 -270 14 -117 14 -125 -2 -137 -24 -18 -34 -16 -34 5 0 9 -9 85 -20 167 -18 137 -48 369 -115 890 -14 105 -41 314 -60 465 -20 151 -49 376 -65 500 -16 124 -43 336 -60 473 -18 136 -29 257 -26 270 7 27 66 121 72 115 2 -3 22 -166 44 -364z m-306 -431 c15 -120 43 -339 62 -488 19 -148 43 -333 54 -410 l19 -140 -21 -18 c-12 -10 -24 -14 -28 -10 -4 4 -12 44 -18 88 -6 44 -43 301 -83 570 l-71 490 23 68 c12 37 25 67 28 67 4 0 19 -98 35 -217z m5490 131 c14 -14 16 -76 16 -535 l0 -519 -28 0 c-61 0 -60 -15 -64 553 l-3 517 32 0 c17 0 39 -7 47 -16z m-2189 -179 c226 -34 423 -97 618 -197 126 -65 186 -110 326 -244 208 -199 336 -373 456 -619 175 -358 243 -675 329 -1525 39 -381 90 -1072 101 -1355 3 -82 10 -217 16 -300 11 -176 24 -152 -131 -227 -215 -104 -422 -176 -695 -243 -334 -82 -550 -108 -880 -109 l-240 -1 2 115 c0 63 6 210 12 325 30 557 24 1260 -15 1650 -22 224 -65 496 -89 556 -5 13 18 24 117 58 181 63 338 142 362 181 43 74 -34 180 -132 180 -17 0 -68 -18 -115 -39 -224 -103 -673 -224 -932 -251 -179 -19 -457 -8 -650 27 -105 19 -293 90 -450 171 -181 94 -292 219 -325 367 -18 80 -13 240 10 330 25 99 95 243 159 327 285 375 873 700 1476 814 192 36 464 40 670 9z m3085 -31 c36 -15 40 -19 40 -53 2 -273 -4 -897 -9 -923 -1 -9 -53 -10 -75 -2 -14 5 -16 59 -16 500 0 316 4 494 10 494 5 0 28 -7 50 -16z m437 -549 l36 -15 -7 -828 c-8 -1055 -9 -1086 -47 -1177 -62 -149 -59 -179 -53 475 2 327 7 658 9 735 2 77 4 294 5 483 0 228 3 342 10 342 6 0 27 -7 47 -15z m-6014 -249 c6 -81 4 -89 -25 -153 l-32 -68 -12 100 c-19 160 -19 167 19 191 17 12 35 20 38 18 3 -2 9 -42 12 -88z m-618 -603 c9 -82 79 -626 115 -893 54 -413 58 -472 34 -447 -3 3 -26 142 -50 309 -156 1078 -155 1071 -142 1079 27 18 36 8 43 -48z m720 -458 c6 -25 35 -296 35 -329 0 -28 -36 -54 -52 -38 -5 5 -18 90 -28 188 -11 99 -22 202 -25 229 l-6 50 35 -40 c20 -22 38 -49 41 -60z m807 -377 c11 -10 18 -50 27 -158 15 -195 17 -180 -24 -180 -42 0 -41 -3 -55 173 -14 179 -14 177 13 177 13 0 30 -6 39 -12z m792 -15 c2 -10 7 -70 11 -133 3 -63 12 -205 20 -315 28 -404 29 -455 12 -455 -19 0 -21 15 -43 300 -8 118 -23 304 -33 413 -9 109 -15 200 -12 202 11 12 40 3 45 -12z m-1880 -192 c6 -9 44 -329 91 -766 14 -132 28 -259 31 -283 l5 -43 -25 16 c-19 13 -26 26 -26 49 0 63 -43 478 -76 732 -19 144 -34 271 -34 283 0 21 24 29 34 12z m5771 -418 l-7 -418 -25 -37 c-57 -84 -54 -100 -51 368 l2 429 37 38 c20 20 40 37 44 37 3 0 3 -188 0 -417z m-925 -663 c5 -581 4 -626 -12 -644 -10 -11 -19 -18 -22 -15 -7 8 -17 1275 -9 1282 4 4 14 6 23 5 13 -3 16 -74 20 -628z m-3266 398 c7 -62 32 -359 42 -499 6 -94 6 -97 -16 -104 -12 -4 -26 -3 -30 2 -7 7 -29 229 -56 571 l-7 82 31 0 c29 0 31 -2 36 -52z m-786 -350 c7 -7 12 -32 12 -57 0 -26 12 -161 25 -301 38 -383 41 -435 24 -425 -26 15 -49 38 -44 44 2 4 -2 54 -10 111 -7 58 -16 152 -20 210 -4 58 -13 164 -21 235 -19 175 -18 195 4 195 10 0 23 -5 30 -12z m473 -673 c3 -22 9 -104 13 -182 7 -150 4 -161 -37 -130 -12 9 -20 47 -32 161 -21 206 -22 198 17 194 29 -3 33 -7 39 -43z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M3184 5756 c-104 -45 -112 -186 -14 -236 71 -36 143 -19 180 43 70 114 -44 246 -166 193z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M3862 5660 c-96 -59 -96 -201 0 -260 95 -57 218 18 218 132 0 110 -126 184 -218 128z" style="fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/dotnet.svg b/static/images/platforms/dark/dotnet.svg
index a8ab5c09e35..636dafaa5b0 100644
--- a/static/images/platforms/dark/dotnet.svg
+++ b/static/images/platforms/dark/dotnet.svg
@@ -1,13 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
 <svg width="150" height="150" viewBox="0 0 150 150" fill="none" xmlns="http://www.w3.org/2000/svg">
-<g clip-path="url(#clip0_1704_16)">
-<path d="M26.7342 95.8333C25.6736 95.8333 24.7721 95.48 24.0297 94.7731C23.2872 94.0481 22.916 93.1872 22.916 92.1905C22.916 91.1754 23.2872 90.3057 24.0297 89.5807C24.7721 88.8557 25.6736 88.4932 26.7342 88.4932C27.8125 88.4932 28.7229 88.8557 29.4653 89.5807C30.2254 90.3057 30.6055 91.1754 30.6055 92.1905C30.6055 93.1872 30.2254 94.0481 29.4653 94.7731C28.7229 95.48 27.8125 95.8333 26.7342 95.8333Z" fill="white"/>
-<path d="M69.1334 95.2352H62.2393L44.0765 66.5809C43.6169 65.8559 43.2367 65.1036 42.9363 64.3243H42.7771C42.9186 65.1582 42.9893 66.9434 42.9893 69.6799V95.2352H36.8906V56.25H44.2354L61.7887 84.2247C62.5311 85.3849 63.0084 86.1822 63.2206 86.6171H63.3265C63.1498 85.5842 63.0613 83.8352 63.0613 81.3701V56.25H69.1334V95.2352Z" fill="white"/>
-<path d="M98.8311 95.2352H77.4863V56.25H97.9827V61.7418H83.7972V72.7793H96.8692V78.2437H83.7972V89.7707H98.8311V95.2352Z" fill="white"/>
-<path d="M129.166 61.7418H118.242V95.2352H111.931V61.7418H101.033V56.25H129.166V61.7418Z" fill="white"/>
-</g>
-<defs>
-<clipPath id="clip0_1704_16">
-<rect width="150" height="150" fill="white"/>
-</clipPath>
-</defs>
+  <path d="M 3.975 3.975 L 146.025 3.975 L 146.025 146.025 L 3.975 146.025 Z M 29.465 94.773 C 30.225 94.048 30.606 93.187 30.606 92.191 C 30.606 91.175 30.225 90.306 29.465 89.581 C 28.723 88.856 27.813 88.493 26.734 88.493 C 25.674 88.493 24.772 88.856 24.03 89.581 C 23.287 90.306 22.916 91.175 22.916 92.191 C 22.916 93.187 23.287 94.048 24.03 94.773 C 24.772 95.48 25.674 95.833 26.734 95.833 C 27.813 95.833 28.723 95.48 29.465 94.773 Z M 69.133 56.25 L 63.061 56.25 L 63.061 81.37 C 63.061 83.835 63.15 85.584 63.327 86.617 L 63.221 86.617 C 63.008 86.182 62.531 85.385 61.789 84.225 L 44.235 56.25 L 36.891 56.25 L 36.891 95.235 L 42.989 95.235 L 42.989 69.68 C 42.989 66.943 42.919 65.158 42.777 64.324 L 42.936 64.324 C 43.237 65.104 43.617 65.856 44.077 66.581 L 62.239 95.235 L 69.133 95.235 Z M 98.831 89.771 L 83.797 89.771 L 83.797 78.244 L 96.869 78.244 L 96.869 72.779 L 83.797 72.779 L 83.797 61.742 L 97.983 61.742 L 97.983 56.25 L 77.486 56.25 L 77.486 95.235 L 98.831 95.235 Z M 129.166 56.25 L 101.033 56.25 L 101.033 61.742 L 111.931 61.742 L 111.931 95.235 L 118.242 95.235 L 118.242 61.742 L 129.166 61.742 Z" style="fill: rgb(228, 228, 231);"/>
+  <g clip-path="url(#clip0_1704_16)">
+    <path d="M 26.734 96.333 C 25.582 96.333 24.504 95.889 23.68 95.131 C 22.883 94.326 22.416 93.286 22.416 92.19 C 22.416 91.077 22.883 90.029 23.68 89.223 C 24.504 88.445 25.58 87.993 26.734 87.993 C 27.905 87.993 28.988 88.444 29.813 89.221 C 30.629 90.027 31.106 91.075 31.106 92.19 C 31.106 93.288 30.626 94.33 29.81 95.135 C 28.986 95.894 27.903 96.333 26.734 96.333 Z M 29.121 94.411 C 29.824 93.766 30.106 93.086 30.106 92.191 C 30.106 91.276 29.824 90.587 29.12 89.943 C 28.46 89.271 27.72 88.993 26.734 88.993 C 25.767 88.993 25.04 89.267 24.379 89.938 C 23.692 90.583 23.416 91.274 23.416 92.191 C 23.416 93.088 23.689 93.768 24.377 94.413 C 25.037 95.067 25.765 95.333 26.734 95.333 C 27.722 95.333 28.46 95.066 29.121 94.411 Z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M 61.964 95.735 L 43.654 66.849 C 43.582 66.735 43.512 66.62 43.443 66.504 C 43.474 67.369 43.489 68.429 43.489 69.68 L 43.489 95.735 L 36.391 95.735 L 36.391 55.75 L 44.512 55.75 L 62.211 83.957 C 62.362 84.193 62.503 84.416 62.633 84.623 C 62.586 83.722 62.561 82.635 62.561 81.37 L 62.561 55.75 L 69.633 55.75 L 69.633 95.735 Z M 68.633 56.75 L 63.561 56.75 L 63.561 81.37 C 63.561 83.823 63.646 85.529 63.819 86.533 L 63.92 87.117 L 62.908 87.117 L 62.771 86.836 C 62.569 86.42 62.106 85.648 61.368 84.494 L 43.959 56.75 L 37.391 56.75 L 37.391 94.735 L 42.489 94.735 L 42.489 69.68 C 42.489 66.953 42.422 65.21 42.284 64.408 L 42.184 63.824 L 43.28 63.824 L 43.403 64.144 C 43.693 64.901 44.051 65.609 44.499 66.313 L 62.514 94.735 L 68.633 94.735 Z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M 76.986 95.735 L 76.986 55.75 L 98.483 55.75 L 98.483 62.242 L 84.297 62.242 L 84.297 72.279 L 97.369 72.279 L 97.369 78.744 L 84.297 78.744 L 84.297 89.271 L 99.331 89.271 L 99.331 95.735 Z M 98.331 90.271 L 83.297 90.271 L 83.297 77.744 L 96.369 77.744 L 96.369 73.279 L 83.297 73.279 L 83.297 61.242 L 97.483 61.242 L 97.483 56.75 L 77.986 56.75 L 77.986 94.735 L 98.331 94.735 Z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M 118.742 62.242 L 118.742 95.735 L 111.431 95.735 L 111.431 62.242 L 100.533 62.242 L 100.533 55.75 L 129.666 55.75 L 129.666 62.242 Z M 128.666 56.75 L 101.533 56.75 L 101.533 61.242 L 112.431 61.242 L 112.431 94.735 L 117.742 94.735 L 117.742 61.242 L 128.666 61.242 Z" style="fill: rgb(228, 228, 231);"/>
+  </g>
+  <defs>
+    <clipPath id="clip0_1704_16">
+      <rect width="150" height="150" fill="white"/>
+    </clipPath>
+  </defs>
 </svg>
diff --git a/static/images/platforms/dark/erlang.svg b/static/images/platforms/dark/erlang.svg
index 109aebb2bc1..3f0c59a91dc 100755
--- a/static/images/platforms/dark/erlang.svg
+++ b/static/images/platforms/dark/erlang.svg
@@ -1 +1,6 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><g fill="#A90533"><path d="M20.7 103.9c-9.7-10.4-15.5-24.7-15.4-41.8-.1-15.1 4.7-28.1 12.9-38h-17.2v79.7l19.7.1zM111.1 103.9c4.2-4.5 8-9.8 11.4-15.9l-19-9.5c-6.7 10.8-16.4 20.8-29.9 20.9-19.6-.1-27.3-16.9-27.3-38.5h73.3c.1-2.4.1-3.6 0-4.7.5-12.9-2.9-23.7-9.1-32.1h16.5v79.7l-15.9.1zM47.5 42.4c.8-9.8 8.5-16.3 17.6-16.4 9.1 0 15.7 6.6 15.9 16.4h-33.5z"/></g></svg>
+<?xml version="1.0" encoding="utf-8"?>
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
+  <g fill="#A90533">
+    <path d="M20.7 103.9c-9.7-10.4-15.5-24.7-15.4-41.8-.1-15.1 4.7-28.1 12.9-38h-17.2v79.7l19.7.1zM111.1 103.9c4.2-4.5 8-9.8 11.4-15.9l-19-9.5c-6.7 10.8-16.4 20.8-29.9 20.9-19.6-.1-27.3-16.9-27.3-38.5h73.3c.1-2.4.1-3.6 0-4.7.5-12.9-2.9-23.7-9.1-32.1h16.5v79.7l-15.9.1zM47.5 42.4c.8-9.8 8.5-16.3 17.6-16.4 9.1 0 15.7 6.6 15.9 16.4h-33.5z" style="fill: rgb(228, 228, 231);"/>
+  </g>
+</svg>
diff --git a/static/images/platforms/dark/flutter.svg b/static/images/platforms/dark/flutter.svg
index 5732195e2d6..892658f560b 100644
--- a/static/images/platforms/dark/flutter.svg
+++ b/static/images/platforms/dark/flutter.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg enable-background="new 0 0 1999 2474.2" viewBox="0 0 1999 2474.2" xmlns="http://www.w3.org/2000/svg">
-  <path d="M 514.28 1500.66 L 215.381 1193.992 L 1185.9 198.325 L 1783.62 198.325 M 1783.62 1117.124 L 1185.9 1117.124 L 962 1346.844 L 1260.9 1653.512" style="fill: rgb(255, 255, 255);"/>
-  <path d="M 962 1960.1 L 1185.9 2189.82 L 1783.62 2189.82 L 1260.9 1653.512" style="fill: rgb(255, 255, 255);"/>
-  <path d="M 663.807 1653.673 L 962.235 1347.407 L 1260.665 1653.592 L 962.235 1959.859 Z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M 962.235 1959.859 L 1260.665 1653.673 L 1302.322 1696.413 L 1003.894 2002.599 Z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M 962 1960.1 L 1405.485 1802.902 L 1260.9 1653.432" style="fill: rgb(255, 255, 255);"/>
+  <path d="M 514.28 1500.66 L 215.381 1193.992 L 1185.9 198.325 L 1783.62 198.325 M 1783.62 1117.124 L 1185.9 1117.124 L 962 1346.844 L 1260.9 1653.512" style="fill: rgb(228, 228, 231);"/>
+  <path d="M 962 1960.1 L 1185.9 2189.82 L 1783.62 2189.82 L 1260.9 1653.512" style="fill: rgb(228, 228, 231);"/>
+  <path d="M 663.807 1653.673 L 962.235 1347.407 L 1260.665 1653.592 L 962.235 1959.859 Z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M 962.235 1959.859 L 1260.665 1653.673 L 1302.322 1696.413 L 1003.894 2002.599 Z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M 962 1960.1 L 1405.485 1802.902 L 1260.9 1653.432" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/go.svg b/static/images/platforms/dark/go.svg
index a16dba13b8a..146566c2c10 100644
--- a/static/images/platforms/dark/go.svg
+++ b/static/images/platforms/dark/go.svg
@@ -4,21 +4,21 @@
     <g transform="matrix(1, 0, 0, 1, -1.688411, -5.30807)">
       <g>
         <g>
-          <path class="st0" d="M15.5,23.2c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5h35.7c0.4,0,0.5,0.3,0.3,0.6l-1.7,2.6 c-0.2,0.3-0.7,0.6-1,0.6L15.5,23.2z" style="fill: rgb(255, 255, 255);"/>
+          <path class="st0" d="M15.5,23.2c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5h35.7c0.4,0,0.5,0.3,0.3,0.6l-1.7,2.6 c-0.2,0.3-0.7,0.6-1,0.6L15.5,23.2z" style="fill: rgb(228, 228, 231);"/>
         </g>
       </g>
     </g>
     <g transform="matrix(1, 0, 0, 1, -1.688411, -5.30807)">
       <g>
         <g>
-          <path class="st0" d="M0.4,32.4c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5h45.6c0.4,0,0.6,0.3,0.5,0.6l-0.8,2.4 c-0.1,0.4-0.5,0.6-0.9,0.6L0.4,32.4z" style="fill: rgb(255, 255, 255);"/>
+          <path class="st0" d="M0.4,32.4c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5h45.6c0.4,0,0.6,0.3,0.5,0.6l-0.8,2.4 c-0.1,0.4-0.5,0.6-0.9,0.6L0.4,32.4z" style="fill: rgb(228, 228, 231);"/>
         </g>
       </g>
     </g>
     <g transform="matrix(1, 0, 0, 1, -1.688411, -5.30807)">
       <g>
         <g>
-          <path class="st0" d="M24.6,41.6c-0.4,0-0.5-0.3-0.3-0.6l1.4-2.5c0.2-0.3,0.6-0.6,1-0.6h20c0.4,0,0.6,0.3,0.6,0.7L47.1,41 c0,0.4-0.4,0.7-0.7,0.7L24.6,41.6z" style="fill: rgb(255, 255, 255);"/>
+          <path class="st0" d="M24.6,41.6c-0.4,0-0.5-0.3-0.3-0.6l1.4-2.5c0.2-0.3,0.6-0.6,1-0.6h20c0.4,0,0.6,0.3,0.6,0.7L47.1,41 c0,0.4-0.4,0.7-0.7,0.7L24.6,41.6z" style="fill: rgb(228, 228, 231);"/>
         </g>
       </g>
     </g>
@@ -26,10 +26,10 @@
       <g id="CXHf1q_1_">
         <g>
           <g>
-            <path class="st0" d="M128.4,21.4c-6.3,1.6-10.6,2.8-16.8,4.4c-1.5,0.4-1.6,0.5-2.9-1c-1.5-1.7-2.6-2.8-4.7-3.8 c-6.3-3.1-12.4-2.2-18.1,1.5c-6.8,4.4-10.3,10.9-10.2,19c0.1,8,5.6,14.6,13.5,15.7c6.8,0.9,12.5-1.5,17-6.6 c0.9-1.1,1.7-2.3,2.7-3.7c-3.6,0-8.1,0-19.3,0c-2.1,0-2.6-1.3-1.9-3c1.3-3.1,3.7-8.3,5.1-10.9c0.3-0.6,1-1.6,2.5-1.6 c5.1,0,23.9,0,36.4,0c-0.2,2.7-0.2,5.4-0.6,8.1c-1.1,7.2-3.8,13.8-8.2,19.6c-7.2,9.5-16.6,15.4-28.5,17 c-9.8,1.3-18.9-0.6-26.9-6.6c-7.4-5.6-11.6-13-12.7-22.2c-1.3-10.9,1.9-20.7,8.5-29.3c7.1-9.3,16.5-15.2,28-17.3 c9.4-1.7,18.4-0.6,26.5,4.9c5.3,3.5,9.1,8.3,11.6,14.1C130,20.6,129.6,21.1,128.4,21.4z" style="fill: rgb(255, 255, 255);"/>
+            <path class="st0" d="M128.4,21.4c-6.3,1.6-10.6,2.8-16.8,4.4c-1.5,0.4-1.6,0.5-2.9-1c-1.5-1.7-2.6-2.8-4.7-3.8 c-6.3-3.1-12.4-2.2-18.1,1.5c-6.8,4.4-10.3,10.9-10.2,19c0.1,8,5.6,14.6,13.5,15.7c6.8,0.9,12.5-1.5,17-6.6 c0.9-1.1,1.7-2.3,2.7-3.7c-3.6,0-8.1,0-19.3,0c-2.1,0-2.6-1.3-1.9-3c1.3-3.1,3.7-8.3,5.1-10.9c0.3-0.6,1-1.6,2.5-1.6 c5.1,0,23.9,0,36.4,0c-0.2,2.7-0.2,5.4-0.6,8.1c-1.1,7.2-3.8,13.8-8.2,19.6c-7.2,9.5-16.6,15.4-28.5,17 c-9.8,1.3-18.9-0.6-26.9-6.6c-7.4-5.6-11.6-13-12.7-22.2c-1.3-10.9,1.9-20.7,8.5-29.3c7.1-9.3,16.5-15.2,28-17.3 c9.4-1.7,18.4-0.6,26.5,4.9c5.3,3.5,9.1,8.3,11.6,14.1C130,20.6,129.6,21.1,128.4,21.4z" style="fill: rgb(228, 228, 231);"/>
           </g>
           <g>
-            <path class="st0" d="M161.5,76.7c-9.1-0.2-17.4-2.8-24.4-8.8c-5.9-5.1-9.6-11.6-10.8-19.3c-1.8-11.3,1.3-21.3,8.1-30.2 c7.3-9.6,16.1-14.6,28-16.7c10.2-1.8,19.8-0.8,28.5,5.1c7.9,5.4,12.8,12.7,14.1,22.3c1.7,13.5-2.2,24.5-11.5,33.9 c-6.6,6.7-14.7,10.9-24,12.8C166.8,76.3,164.1,76.4,161.5,76.7z M185.3,36.3c-0.1-1.3-0.1-2.3-0.3-3.3 c-1.8-9.9-10.9-15.5-20.4-13.3c-9.3,2.1-15.3,8-17.5,17.4c-1.8,7.8,2,15.7,9.2,18.9c5.5,2.4,11,2.1,16.3-0.6 C180.5,51.3,184.8,44.9,185.3,36.3z" style="fill: rgb(255, 255, 255);"/>
+            <path class="st0" d="M161.5,76.7c-9.1-0.2-17.4-2.8-24.4-8.8c-5.9-5.1-9.6-11.6-10.8-19.3c-1.8-11.3,1.3-21.3,8.1-30.2 c7.3-9.6,16.1-14.6,28-16.7c10.2-1.8,19.8-0.8,28.5,5.1c7.9,5.4,12.8,12.7,14.1,22.3c1.7,13.5-2.2,24.5-11.5,33.9 c-6.6,6.7-14.7,10.9-24,12.8C166.8,76.3,164.1,76.4,161.5,76.7z M185.3,36.3c-0.1-1.3-0.1-2.3-0.3-3.3 c-1.8-9.9-10.9-15.5-20.4-13.3c-9.3,2.1-15.3,8-17.5,17.4c-1.8,7.8,2,15.7,9.2,18.9c5.5,2.4,11,2.1,16.3-0.6 C180.5,51.3,184.8,44.9,185.3,36.3z" style="fill: rgb(228, 228, 231);"/>
           </g>
         </g>
       </g>
diff --git a/static/images/platforms/dark/java.svg b/static/images/platforms/dark/java.svg
index a5ec3a293bb..fc3412b0670 100755
--- a/static/images/platforms/dark/java.svg
+++ b/static/images/platforms/dark/java.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M47.617 98.12s-4.767 2.774 3.397 3.71c9.892 1.13 14.947.968 25.845-1.092 0 0 2.871 1.795 6.873 3.351-24.439 10.47-55.308-.607-36.115-5.969zM44.629 84.455s-5.348 3.959 2.823 4.805c10.567 1.091 18.91 1.18 33.354-1.6 0 0 1.993 2.025 5.132 3.131-29.542 8.64-62.446.68-41.309-6.336z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M69.802 61.271c6.025 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.792 15.635-29.58 0 .001-42.731 10.67-22.324 34.187z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M102.123 108.229s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.094.171-4.451-1.938 3.899-4.625 6.526-5.192 2.739-.593 4.303-.485 4.303-.485-4.953-3.487-32.013 6.85-13.743 9.815 49.821 8.076 90.817-3.637 77.896-9.468zM49.912 70.294s-22.686 5.389-8.033 7.348c6.188.828 18.518.638 30.011-.326 9.39-.789 18.813-2.474 18.813-2.474s-3.308 1.419-5.704 3.053c-23.042 6.061-67.544 3.238-54.731-2.958 10.832-5.239 19.644-4.643 19.644-4.643zM90.609 93.041c23.421-12.167 12.591-23.86 5.032-22.285-1.848.385-2.677.72-2.677.72s.688-1.079 2-1.543c14.953-5.255 26.451 15.503-4.823 23.725 0-.002.359-.327.468-.617z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M76.491 1.587s12.968 12.976-12.303 32.923c-20.266 16.006-4.621 25.13-.007 35.559-11.831-10.673-20.509-20.07-14.688-28.815 8.548-12.834 32.229-19.059 26.998-39.667z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M52.214 126.021c22.476 1.437 57-.8 57.817-11.436 0 0-1.571 4.032-18.577 7.231-19.186 3.612-42.854 3.191-56.887.874 0 .001 2.875 2.381 17.647 3.331z" style="fill: rgb(255, 255, 255);"/>
+  <path d="M47.617 98.12s-4.767 2.774 3.397 3.71c9.892 1.13 14.947.968 25.845-1.092 0 0 2.871 1.795 6.873 3.351-24.439 10.47-55.308-.607-36.115-5.969zM44.629 84.455s-5.348 3.959 2.823 4.805c10.567 1.091 18.91 1.18 33.354-1.6 0 0 1.993 2.025 5.132 3.131-29.542 8.64-62.446.68-41.309-6.336z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M69.802 61.271c6.025 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.792 15.635-29.58 0 .001-42.731 10.67-22.324 34.187z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M102.123 108.229s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.094.171-4.451-1.938 3.899-4.625 6.526-5.192 2.739-.593 4.303-.485 4.303-.485-4.953-3.487-32.013 6.85-13.743 9.815 49.821 8.076 90.817-3.637 77.896-9.468zM49.912 70.294s-22.686 5.389-8.033 7.348c6.188.828 18.518.638 30.011-.326 9.39-.789 18.813-2.474 18.813-2.474s-3.308 1.419-5.704 3.053c-23.042 6.061-67.544 3.238-54.731-2.958 10.832-5.239 19.644-4.643 19.644-4.643zM90.609 93.041c23.421-12.167 12.591-23.86 5.032-22.285-1.848.385-2.677.72-2.677.72s.688-1.079 2-1.543c14.953-5.255 26.451 15.503-4.823 23.725 0-.002.359-.327.468-.617z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M76.491 1.587s12.968 12.976-12.303 32.923c-20.266 16.006-4.621 25.13-.007 35.559-11.831-10.673-20.509-20.07-14.688-28.815 8.548-12.834 32.229-19.059 26.998-39.667z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M52.214 126.021c22.476 1.437 57-.8 57.817-11.436 0 0-1.571 4.032-18.577 7.231-19.186 3.612-42.854 3.191-56.887.874 0 .001 2.875 2.381 17.647 3.331z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/javascript.svg b/static/images/platforms/dark/javascript.svg
index 9d84b3a6d28..24be9d24f0d 100755
--- a/static/images/platforms/dark/javascript.svg
+++ b/static/images/platforms/dark/javascript.svg
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M1.408 1.408h125.184v125.185h-125.184z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M116.347 96.736c-.917-5.711-4.641-10.508-15.672-14.981-3.832-1.761-8.104-3.022-9.377-5.926-.452-1.69-.512-2.642-.226-3.665.821-3.32 4.784-4.355 7.925-3.403 2.023.678 3.938 2.237 5.093 4.724 5.402-3.498 5.391-3.475 9.163-5.879-1.381-2.141-2.118-3.129-3.022-4.045-3.249-3.629-7.676-5.498-14.756-5.355l-3.688.477c-3.534.893-6.902 2.748-8.877 5.235-5.926 6.724-4.236 18.492 2.975 23.335 7.104 5.332 17.54 6.545 18.873 11.531 1.297 6.104-4.486 8.08-10.234 7.378-4.236-.881-6.592-3.034-9.139-6.949-4.688 2.713-4.688 2.713-9.508 5.485 1.143 2.499 2.344 3.63 4.26 5.795 9.068 9.198 31.76 8.746 35.83-5.176.165-.478 1.261-3.666.38-8.581zm-46.885-37.793h-11.709l-.048 30.272c0 6.438.333 12.34-.714 14.149-1.713 3.558-6.152 3.117-8.175 2.427-2.059-1.012-3.106-2.451-4.319-4.485-.333-.584-.583-1.036-.667-1.071l-9.52 5.83c1.583 3.249 3.915 6.069 6.902 7.901 4.462 2.678 10.459 3.499 16.731 2.059 4.082-1.189 7.604-3.652 9.448-7.401 2.666-4.915 2.094-10.864 2.07-17.444.06-10.735.001-21.468.001-32.237z" style="fill: rgb(28, 33, 56);"/>
+  <path d="M 1.408 1.408 L 126.592 1.408 L 126.592 126.593 L 1.408 126.593 Z M 116.347 96.736 C 115.43 91.025 111.706 86.228 100.675 81.755 C 96.843 79.994 92.571 78.733 91.298 75.829 C 90.846 74.139 90.786 73.187 91.072 72.164 C 91.893 68.844 95.856 67.809 98.997 68.761 C 101.02 69.439 102.935 70.998 104.09 73.485 C 109.492 69.987 109.481 70.01 113.253 67.606 C 111.872 65.465 111.135 64.477 110.231 63.561 C 106.982 59.932 102.555 58.063 95.475 58.206 L 91.787 58.683 C 88.253 59.576 84.885 61.431 82.91 63.918 C 76.984 70.642 78.674 82.41 85.885 87.253 C 92.989 92.585 103.425 93.798 104.758 98.784 C 106.055 104.888 100.272 106.864 94.524 106.162 C 90.288 105.281 87.932 103.128 85.385 99.213 C 80.697 101.926 80.697 101.926 75.877 104.698 C 77.02 107.197 78.221 108.328 80.137 110.493 C 89.205 119.691 111.897 119.239 115.967 105.317 C 116.132 104.839 117.228 101.651 116.347 96.736 Z M 69.462 58.943 L 57.753 58.943 L 57.705 89.215 C 57.705 95.653 58.038 101.555 56.991 103.364 C 55.278 106.922 50.839 106.481 48.816 105.791 C 46.757 104.779 45.71 103.34 44.497 101.306 C 44.164 100.722 43.914 100.27 43.83 100.235 L 34.31 106.065 C 35.893 109.314 38.225 112.134 41.212 113.966 C 45.674 116.644 51.671 117.465 57.943 116.025 C 62.025 114.836 65.547 112.373 67.391 108.624 C 70.057 103.709 69.485 97.76 69.461 91.18 C 69.521 80.445 69.462 69.712 69.462 58.943 Z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/kotlin.svg b/static/images/platforms/dark/kotlin.svg
index 8c90c6e4762..3a4fd92ffd7 100644
--- a/static/images/platforms/dark/kotlin.svg
+++ b/static/images/platforms/dark/kotlin.svg
@@ -4,9 +4,9 @@
     <g id="twitter-profile-copy" fill-rule="nonzero" stroke-width="24">
       <g id="Group" transform="translate(11.000000, 14.000000)">
         <g id="kotlin-logo" transform="translate(3.000000, 0.000000)">
-          <polygon id="Shape" points="0 0 125.518 0 0 131.998" style="stroke: rgb(255, 255, 255);"/>
-          <polygon id="Shape" points="0 250 125.338 124.444 250 250" style="stroke: rgb(255, 255, 255);"/>
-          <polygon id="Shape" points="125.518 0 0 131.998 0 250 125.338 124.442 250 0" style="stroke: rgb(255, 255, 255);"/>
+          <polygon id="Shape" points="0 0 125.518 0 0 131.998" style="fill: rgb(228, 228, 231);"/>
+          <polygon id="Shape" points="0 250 125.338 124.444 250 250" style="fill: rgb(228, 228, 231);"/>
+          <polygon id="Shape" points="125.518 0 0 131.998 0 250 125.338 124.442 250 0" style="fill: rgb(228, 228, 231);"/>
         </g>
       </g>
     </g>
diff --git a/static/images/platforms/dark/nodejs.svg b/static/images/platforms/dark/nodejs.svg
index 0a877c31b5f..8fed80eafb2 100755
--- a/static/images/platforms/dark/nodejs.svg
+++ b/static/images/platforms/dark/nodejs.svg
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M112.771 30.334l-44.097-25.605c-2.781-1.584-6.402-1.584-9.205 0l-44.568 25.605c-2.87 1.651-4.901 4.754-4.901 8.073v51.142c0 3.319 2.084 6.423 4.954 8.083l11.775 6.688c5.628 2.772 7.617 2.772 10.178 2.772 8.333 0 13.093-5.039 13.093-13.828v-50.49c0-.713-.371-1.774-1.071-1.774h-5.623c-.712 0-2.306 1.061-2.306 1.773v50.49c0 3.896-3.524 7.773-10.11 4.48l-12.167-7.013c-.424-.23-.723-.693-.723-1.181v-51.142c0-.482.555-.966.982-1.213l44.424-25.561c.415-.235 1.025-.235 1.439 0l43.882 25.555c.42.253.272.722.272 1.219v51.142c0 .488.183.963-.232 1.198l-44.086 25.576c-.378.227-.847.227-1.261 0l-11.307-6.749c-.341-.198-.746-.269-1.073-.086-3.146 1.783-3.726 2.02-6.677 3.043-.726.253-1.797.692.41 1.929l14.798 8.754c1.417.82 3.027 1.246 4.647 1.246 1.642 0 3.25-.426 4.667-1.246l43.885-25.582c2.87-1.672 4.23-4.764 4.23-8.083v-51.142c0-3.319-1.36-6.414-4.229-8.073zM77.91 81.445c-11.726 0-14.309-3.235-15.17-9.066-.1-.628-.633-1.379-1.272-1.379h-5.731c-.709 0-1.279.86-1.279 1.566 0 7.466 4.059 16.512 23.453 16.512 14.039 0 22.088-5.455 22.088-15.109 0-9.572-6.467-12.084-20.082-13.886-13.762-1.819-15.16-2.738-15.16-5.962 0-2.658 1.184-6.203 11.374-6.203 9.105 0 12.461 1.954 13.842 8.091.118.577.645.991 1.24.991h5.754c.354 0 .692-.143.94-.396.24-.272.367-.613.335-.979-.891-10.568-7.912-15.493-22.112-15.493-12.631 0-20.166 5.334-20.166 14.275 0 9.698 7.497 12.378 19.622 13.577 14.505 1.422 15.633 3.542 15.633 6.395 0 4.955-3.978 7.066-13.309 7.066z" style="fill: rgb(255, 255, 255);"/>
+  <path d="M112.771 30.334l-44.097-25.605c-2.781-1.584-6.402-1.584-9.205 0l-44.568 25.605c-2.87 1.651-4.901 4.754-4.901 8.073v51.142c0 3.319 2.084 6.423 4.954 8.083l11.775 6.688c5.628 2.772 7.617 2.772 10.178 2.772 8.333 0 13.093-5.039 13.093-13.828v-50.49c0-.713-.371-1.774-1.071-1.774h-5.623c-.712 0-2.306 1.061-2.306 1.773v50.49c0 3.896-3.524 7.773-10.11 4.48l-12.167-7.013c-.424-.23-.723-.693-.723-1.181v-51.142c0-.482.555-.966.982-1.213l44.424-25.561c.415-.235 1.025-.235 1.439 0l43.882 25.555c.42.253.272.722.272 1.219v51.142c0 .488.183.963-.232 1.198l-44.086 25.576c-.378.227-.847.227-1.261 0l-11.307-6.749c-.341-.198-.746-.269-1.073-.086-3.146 1.783-3.726 2.02-6.677 3.043-.726.253-1.797.692.41 1.929l14.798 8.754c1.417.82 3.027 1.246 4.647 1.246 1.642 0 3.25-.426 4.667-1.246l43.885-25.582c2.87-1.672 4.23-4.764 4.23-8.083v-51.142c0-3.319-1.36-6.414-4.229-8.073zM77.91 81.445c-11.726 0-14.309-3.235-15.17-9.066-.1-.628-.633-1.379-1.272-1.379h-5.731c-.709 0-1.279.86-1.279 1.566 0 7.466 4.059 16.512 23.453 16.512 14.039 0 22.088-5.455 22.088-15.109 0-9.572-6.467-12.084-20.082-13.886-13.762-1.819-15.16-2.738-15.16-5.962 0-2.658 1.184-6.203 11.374-6.203 9.105 0 12.461 1.954 13.842 8.091.118.577.645.991 1.24.991h5.754c.354 0 .692-.143.94-.396.24-.272.367-.613.335-.979-.891-10.568-7.912-15.493-22.112-15.493-12.631 0-20.166 5.334-20.166 14.275 0 9.698 7.497 12.378 19.622 13.577 14.505 1.422 15.633 3.542 15.633 6.395 0 4.955-3.978 7.066-13.309 7.066z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/php.svg b/static/images/platforms/dark/php.svg
index c0257f28c04..396ab6dee97 100755
--- a/static/images/platforms/dark/php.svg
+++ b/static/images/platforms/dark/php.svg
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M64 33.039c-33.74 0-61.094 13.862-61.094 30.961s27.354 30.961 61.094 30.961 61.094-13.862 61.094-30.961-27.354-30.961-61.094-30.961zm-15.897 36.993c-1.458 1.364-3.077 1.927-4.86 2.507-1.783.581-4.052.461-6.811.461h-6.253l-1.733 10h-7.301l6.515-34h14.04c4.224 0 7.305 1.215 9.242 3.432 1.937 2.217 2.519 5.364 1.747 9.337-.319 1.637-.856 3.159-1.614 4.515-.759 1.357-1.75 2.624-2.972 3.748zm21.311 2.968l2.881-14.42c.328-1.688.208-2.942-.361-3.555-.57-.614-1.782-1.025-3.635-1.025h-5.79l-3.731 19h-7.244l6.515-33h7.244l-1.732 9h6.453c4.061 0 6.861.815 8.402 2.231s2.003 3.356 1.387 6.528l-3.031 15.241h-7.358zm40.259-11.178c-.318 1.637-.856 3.133-1.613 4.488-.758 1.357-1.748 2.598-2.971 3.722-1.458 1.364-3.078 1.927-4.86 2.507-1.782.581-4.053.461-6.812.461h-6.253l-1.732 10h-7.301l6.514-34h14.041c4.224 0 7.305 1.215 9.241 3.432 1.935 2.217 2.518 5.418 1.746 9.39zM95.919 54h-5.001l-2.727 14h4.442c2.942 0 5.136-.29 6.576-1.4 1.442-1.108 2.413-2.828 2.918-5.421.484-2.491.264-4.434-.66-5.458-.925-1.024-2.774-1.721-5.548-1.721zM38.934 54h-5.002l-2.727 14h4.441c2.943 0 5.136-.29 6.577-1.4 1.441-1.108 2.413-2.828 2.917-5.421.484-2.491.264-4.434-.66-5.458s-2.772-1.721-5.546-1.721z" style="fill: rgb(255, 255, 255);"/>
+  <path d="M64 33.039c-33.74 0-61.094 13.862-61.094 30.961s27.354 30.961 61.094 30.961 61.094-13.862 61.094-30.961-27.354-30.961-61.094-30.961zm-15.897 36.993c-1.458 1.364-3.077 1.927-4.86 2.507-1.783.581-4.052.461-6.811.461h-6.253l-1.733 10h-7.301l6.515-34h14.04c4.224 0 7.305 1.215 9.242 3.432 1.937 2.217 2.519 5.364 1.747 9.337-.319 1.637-.856 3.159-1.614 4.515-.759 1.357-1.75 2.624-2.972 3.748zm21.311 2.968l2.881-14.42c.328-1.688.208-2.942-.361-3.555-.57-.614-1.782-1.025-3.635-1.025h-5.79l-3.731 19h-7.244l6.515-33h7.244l-1.732 9h6.453c4.061 0 6.861.815 8.402 2.231s2.003 3.356 1.387 6.528l-3.031 15.241h-7.358zm40.259-11.178c-.318 1.637-.856 3.133-1.613 4.488-.758 1.357-1.748 2.598-2.971 3.722-1.458 1.364-3.078 1.927-4.86 2.507-1.782.581-4.053.461-6.812.461h-6.253l-1.732 10h-7.301l6.514-34h14.041c4.224 0 7.305 1.215 9.241 3.432 1.935 2.217 2.518 5.418 1.746 9.39zM95.919 54h-5.001l-2.727 14h4.442c2.942 0 5.136-.29 6.576-1.4 1.442-1.108 2.413-2.828 2.918-5.421.484-2.491.264-4.434-.66-5.458-.925-1.024-2.774-1.721-5.548-1.721zM38.934 54h-5.002l-2.727 14h4.441c2.943 0 5.136-.29 6.577-1.4 1.441-1.108 2.413-2.828 2.917-5.421.484-2.491.264-4.434-.66-5.458s-2.772-1.721-5.546-1.721z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/python.svg b/static/images/platforms/dark/python.svg
index b92faafdfaa..92b164e2164 100755
--- a/static/images/platforms/dark/python.svg
+++ b/static/images/platforms/dark/python.svg
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M 63.391 10.988 C 59.169 11.008 55.139 11.367 51.591 11.995 C 41.141 13.841 39.245 17.705 39.245 24.832 L 39.245 34.243 L 63.938 34.243 L 63.938 37.38 L 29.977 37.38 C 22.801 37.38 16.517 41.693 14.551 49.901 C 12.283 59.306 12.183 65.176 14.551 74.997 C 16.306 82.308 20.498 87.516 27.675 87.516 L 36.166 87.516 L 36.166 76.234 C 36.166 68.083 43.217 60.894 51.592 60.894 L 76.257 60.894 C 83.123 60.894 88.603 55.24 88.603 48.346 L 88.603 24.833 C 88.603 18.14 82.957 13.113 76.257 11.996 C 72.013 11.29 67.612 10.969 63.391 10.988 Z M 50.037 18.557 C 52.587 18.557 54.671 20.674 54.671 23.278 C 54.671 25.871 52.588 27.968 50.037 27.968 C 47.477 27.968 45.404 25.871 45.404 23.278 C 45.403 20.674 47.477 18.557 50.037 18.557 Z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M 91.682 37.38 L 91.682 48.346 C 91.682 56.846 84.474 64.001 76.256 64.001 L 51.591 64.001 C 44.835 64.001 39.245 69.784 39.245 76.55 L 39.245 100.065 C 39.245 106.756 45.063 110.693 51.591 112.612 C 59.407 114.909 66.903 115.325 76.256 112.612 C 82.472 110.811 88.602 107.189 88.602 100.065 L 88.602 90.653 L 63.938 90.653 L 63.938 87.515 L 100.95 87.515 C 108.126 87.515 110.802 82.51 113.298 74.996 C 115.876 67.261 115.765 59.822 113.298 49.9 C 111.524 42.755 108.137 37.379 100.95 37.379 L 91.682 37.379 Z M 77.809 96.927 C 80.37 96.927 82.443 99.024 82.443 101.619 C 82.443 104.221 80.369 106.338 77.809 106.338 C 75.259 106.338 73.176 104.221 73.176 101.619 C 73.176 99.024 75.259 96.927 77.809 96.927 Z" style="fill: rgb(255, 255, 255);"/>
+  <path d="M 63.391 10.988 C 59.169 11.008 55.139 11.367 51.591 11.995 C 41.141 13.841 39.245 17.705 39.245 24.832 L 39.245 34.243 L 63.938 34.243 L 63.938 37.38 L 29.977 37.38 C 22.801 37.38 16.517 41.693 14.551 49.901 C 12.283 59.306 12.183 65.176 14.551 74.997 C 16.306 82.308 20.498 87.516 27.675 87.516 L 36.166 87.516 L 36.166 76.234 C 36.166 68.083 43.217 60.894 51.592 60.894 L 76.257 60.894 C 83.123 60.894 88.603 55.24 88.603 48.346 L 88.603 24.833 C 88.603 18.14 82.957 13.113 76.257 11.996 C 72.013 11.29 67.612 10.969 63.391 10.988 Z M 50.037 18.557 C 52.587 18.557 54.671 20.674 54.671 23.278 C 54.671 25.871 52.588 27.968 50.037 27.968 C 47.477 27.968 45.404 25.871 45.404 23.278 C 45.403 20.674 47.477 18.557 50.037 18.557 Z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M 91.682 37.38 L 91.682 48.346 C 91.682 56.846 84.474 64.001 76.256 64.001 L 51.591 64.001 C 44.835 64.001 39.245 69.784 39.245 76.55 L 39.245 100.065 C 39.245 106.756 45.063 110.693 51.591 112.612 C 59.407 114.909 66.903 115.325 76.256 112.612 C 82.472 110.811 88.602 107.189 88.602 100.065 L 88.602 90.653 L 63.938 90.653 L 63.938 87.515 L 100.95 87.515 C 108.126 87.515 110.802 82.51 113.298 74.996 C 115.876 67.261 115.765 59.822 113.298 49.9 C 111.524 42.755 108.137 37.379 100.95 37.379 L 91.682 37.379 Z M 77.809 96.927 C 80.37 96.927 82.443 99.024 82.443 101.619 C 82.443 104.221 80.369 106.338 77.809 106.338 C 75.259 106.338 73.176 104.221 73.176 101.619 C 73.176 99.024 75.259 96.927 77.809 96.927 Z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/react.svg b/static/images/platforms/dark/react.svg
index 0a71ebe3469..c66acae52cb 100644
--- a/static/images/platforms/dark/react.svg
+++ b/static/images/platforms/dark/react.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" enable-background="new 0 0 128 128" xmlns="http://www.w3.org/2000/svg">
   <g fill="#61DAFB">
-    <circle cx="64" cy="64" r="11.4" style="fill: rgb(255, 255, 255);"/>
-    <path d="M107.3 45.2c-2.2-.8-4.5-1.6-6.9-2.3.6-2.4 1.1-4.8 1.5-7.1 2.1-13.2-.2-22.5-6.6-26.1-1.9-1.1-4-1.6-6.4-1.6-7 0-15.9 5.2-24.9 13.9-9-8.7-17.9-13.9-24.9-13.9-2.4 0-4.5.5-6.4 1.6-6.4 3.7-8.7 13-6.6 26.1.4 2.3.9 4.7 1.5 7.1-2.4.7-4.7 1.4-6.9 2.3-12.5 4.8-19.3 11.4-19.3 18.8s6.9 14 19.3 18.8c2.2.8 4.5 1.6 6.9 2.3-.6 2.4-1.1 4.8-1.5 7.1-2.1 13.2.2 22.5 6.6 26.1 1.9 1.1 4 1.6 6.4 1.6 7.1 0 16-5.2 24.9-13.9 9 8.7 17.9 13.9 24.9 13.9 2.4 0 4.5-.5 6.4-1.6 6.4-3.7 8.7-13 6.6-26.1-.4-2.3-.9-4.7-1.5-7.1 2.4-.7 4.7-1.4 6.9-2.3 12.5-4.8 19.3-11.4 19.3-18.8s-6.8-14-19.3-18.8zm-14.8-30.5c4.1 2.4 5.5 9.8 3.8 20.3-.3 2.1-.8 4.3-1.4 6.6-5.2-1.2-10.7-2-16.5-2.5-3.4-4.8-6.9-9.1-10.4-13 7.4-7.3 14.9-12.3 21-12.3 1.3 0 2.5.3 3.5.9zm-11.2 59.3c-1.8 3.2-3.9 6.4-6.1 9.6-3.7.3-7.4.4-11.2.4-3.9 0-7.6-.1-11.2-.4-2.2-3.2-4.2-6.4-6-9.6-1.9-3.3-3.7-6.7-5.3-10 1.6-3.3 3.4-6.7 5.3-10 1.8-3.2 3.9-6.4 6.1-9.6 3.7-.3 7.4-.4 11.2-.4 3.9 0 7.6.1 11.2.4 2.2 3.2 4.2 6.4 6 9.6 1.9 3.3 3.7 6.7 5.3 10-1.7 3.3-3.4 6.6-5.3 10zm8.3-3.3c1.5 3.5 2.7 6.9 3.8 10.3-3.4.8-7 1.4-10.8 1.9 1.2-1.9 2.5-3.9 3.6-6 1.2-2.1 2.3-4.2 3.4-6.2zm-25.6 27.1c-2.4-2.6-4.7-5.4-6.9-8.3 2.3.1 4.6.2 6.9.2 2.3 0 4.6-.1 6.9-.2-2.2 2.9-4.5 5.7-6.9 8.3zm-18.6-15c-3.8-.5-7.4-1.1-10.8-1.9 1.1-3.3 2.3-6.8 3.8-10.3 1.1 2 2.2 4.1 3.4 6.1 1.2 2.2 2.4 4.1 3.6 6.1zm-7-25.5c-1.5-3.5-2.7-6.9-3.8-10.3 3.4-.8 7-1.4 10.8-1.9-1.2 1.9-2.5 3.9-3.6 6-1.2 2.1-2.3 4.2-3.4 6.2zm25.6-27.1c2.4 2.6 4.7 5.4 6.9 8.3-2.3-.1-4.6-.2-6.9-.2-2.3 0-4.6.1-6.9.2 2.2-2.9 4.5-5.7 6.9-8.3zm22.2 21l-3.6-6c3.8.5 7.4 1.1 10.8 1.9-1.1 3.3-2.3 6.8-3.8 10.3-1.1-2.1-2.2-4.2-3.4-6.2zm-54.5-16.2c-1.7-10.5-.3-17.9 3.8-20.3 1-.6 2.2-.9 3.5-.9 6 0 13.5 4.9 21 12.3-3.5 3.8-7 8.2-10.4 13-5.8.5-11.3 1.4-16.5 2.5-.6-2.3-1-4.5-1.4-6.6zm-24.7 29c0-4.7 5.7-9.7 15.7-13.4 2-.8 4.2-1.5 6.4-2.1 1.6 5 3.6 10.3 6 15.6-2.4 5.3-4.5 10.5-6 15.5-13.8-4-22.1-10-22.1-15.6zm28.5 49.3c-4.1-2.4-5.5-9.8-3.8-20.3.3-2.1.8-4.3 1.4-6.6 5.2 1.2 10.7 2 16.5 2.5 3.4 4.8 6.9 9.1 10.4 13-7.4 7.3-14.9 12.3-21 12.3-1.3 0-2.5-.3-3.5-.9zm60.8-20.3c1.7 10.5.3 17.9-3.8 20.3-1 .6-2.2.9-3.5.9-6 0-13.5-4.9-21-12.3 3.5-3.8 7-8.2 10.4-13 5.8-.5 11.3-1.4 16.5-2.5.6 2.3 1 4.5 1.4 6.6zm9-15.6c-2 .8-4.2 1.5-6.4 2.1-1.6-5-3.6-10.3-6-15.6 2.4-5.3 4.5-10.5 6-15.5 13.8 4 22.1 10 22.1 15.6 0 4.7-5.8 9.7-15.7 13.4z" style="fill: rgb(255, 255, 255);"/>
+    <circle cx="64" cy="64" r="11.4" style="fill: rgb(228, 228, 231);"/>
+    <path d="M107.3 45.2c-2.2-.8-4.5-1.6-6.9-2.3.6-2.4 1.1-4.8 1.5-7.1 2.1-13.2-.2-22.5-6.6-26.1-1.9-1.1-4-1.6-6.4-1.6-7 0-15.9 5.2-24.9 13.9-9-8.7-17.9-13.9-24.9-13.9-2.4 0-4.5.5-6.4 1.6-6.4 3.7-8.7 13-6.6 26.1.4 2.3.9 4.7 1.5 7.1-2.4.7-4.7 1.4-6.9 2.3-12.5 4.8-19.3 11.4-19.3 18.8s6.9 14 19.3 18.8c2.2.8 4.5 1.6 6.9 2.3-.6 2.4-1.1 4.8-1.5 7.1-2.1 13.2.2 22.5 6.6 26.1 1.9 1.1 4 1.6 6.4 1.6 7.1 0 16-5.2 24.9-13.9 9 8.7 17.9 13.9 24.9 13.9 2.4 0 4.5-.5 6.4-1.6 6.4-3.7 8.7-13 6.6-26.1-.4-2.3-.9-4.7-1.5-7.1 2.4-.7 4.7-1.4 6.9-2.3 12.5-4.8 19.3-11.4 19.3-18.8s-6.8-14-19.3-18.8zm-14.8-30.5c4.1 2.4 5.5 9.8 3.8 20.3-.3 2.1-.8 4.3-1.4 6.6-5.2-1.2-10.7-2-16.5-2.5-3.4-4.8-6.9-9.1-10.4-13 7.4-7.3 14.9-12.3 21-12.3 1.3 0 2.5.3 3.5.9zm-11.2 59.3c-1.8 3.2-3.9 6.4-6.1 9.6-3.7.3-7.4.4-11.2.4-3.9 0-7.6-.1-11.2-.4-2.2-3.2-4.2-6.4-6-9.6-1.9-3.3-3.7-6.7-5.3-10 1.6-3.3 3.4-6.7 5.3-10 1.8-3.2 3.9-6.4 6.1-9.6 3.7-.3 7.4-.4 11.2-.4 3.9 0 7.6.1 11.2.4 2.2 3.2 4.2 6.4 6 9.6 1.9 3.3 3.7 6.7 5.3 10-1.7 3.3-3.4 6.6-5.3 10zm8.3-3.3c1.5 3.5 2.7 6.9 3.8 10.3-3.4.8-7 1.4-10.8 1.9 1.2-1.9 2.5-3.9 3.6-6 1.2-2.1 2.3-4.2 3.4-6.2zm-25.6 27.1c-2.4-2.6-4.7-5.4-6.9-8.3 2.3.1 4.6.2 6.9.2 2.3 0 4.6-.1 6.9-.2-2.2 2.9-4.5 5.7-6.9 8.3zm-18.6-15c-3.8-.5-7.4-1.1-10.8-1.9 1.1-3.3 2.3-6.8 3.8-10.3 1.1 2 2.2 4.1 3.4 6.1 1.2 2.2 2.4 4.1 3.6 6.1zm-7-25.5c-1.5-3.5-2.7-6.9-3.8-10.3 3.4-.8 7-1.4 10.8-1.9-1.2 1.9-2.5 3.9-3.6 6-1.2 2.1-2.3 4.2-3.4 6.2zm25.6-27.1c2.4 2.6 4.7 5.4 6.9 8.3-2.3-.1-4.6-.2-6.9-.2-2.3 0-4.6.1-6.9.2 2.2-2.9 4.5-5.7 6.9-8.3zm22.2 21l-3.6-6c3.8.5 7.4 1.1 10.8 1.9-1.1 3.3-2.3 6.8-3.8 10.3-1.1-2.1-2.2-4.2-3.4-6.2zm-54.5-16.2c-1.7-10.5-.3-17.9 3.8-20.3 1-.6 2.2-.9 3.5-.9 6 0 13.5 4.9 21 12.3-3.5 3.8-7 8.2-10.4 13-5.8.5-11.3 1.4-16.5 2.5-.6-2.3-1-4.5-1.4-6.6zm-24.7 29c0-4.7 5.7-9.7 15.7-13.4 2-.8 4.2-1.5 6.4-2.1 1.6 5 3.6 10.3 6 15.6-2.4 5.3-4.5 10.5-6 15.5-13.8-4-22.1-10-22.1-15.6zm28.5 49.3c-4.1-2.4-5.5-9.8-3.8-20.3.3-2.1.8-4.3 1.4-6.6 5.2 1.2 10.7 2 16.5 2.5 3.4 4.8 6.9 9.1 10.4 13-7.4 7.3-14.9 12.3-21 12.3-1.3 0-2.5-.3-3.5-.9zm60.8-20.3c1.7 10.5.3 17.9-3.8 20.3-1 .6-2.2.9-3.5.9-6 0-13.5-4.9-21-12.3 3.5-3.8 7-8.2 10.4-13 5.8-.5 11.3-1.4 16.5-2.5.6 2.3 1 4.5 1.4 6.6zm9-15.6c-2 .8-4.2 1.5-6.4 2.1-1.6-5-3.6-10.3-6-15.6 2.4-5.3 4.5-10.5 6-15.5 13.8 4 22.1 10 22.1 15.6 0 4.7-5.8 9.7-15.7 13.4z" style="fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/ruby.svg b/static/images/platforms/dark/ruby.svg
index ec05b20fa2a..eb7f488a06c 100755
--- a/static/images/platforms/dark/ruby.svg
+++ b/static/images/platforms/dark/ruby.svg
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path fill-rule="evenodd" clip-rule="evenodd" d="M35.971 111.33c27.466 3.75 54.444 7.433 81.958 11.188-9.374-15.606-18.507-30.813-27.713-46.144l-54.245 34.956zM125.681 24.947c-2.421 3.636-4.847 7.269-7.265 10.907-8.304 12.493-16.607 24.986-24.903 37.485-.462.696-1.061 1.248-.41 2.321 8.016 13.237 15.969 26.513 23.942 39.777 1.258 2.095 2.53 4.182 4.157 6.192 1.612-32.193 3.223-64.387 4.834-96.58l-.355-.102zM16.252 66.22c.375.355 1.311.562 1.747.347 7.689-3.779 15.427-7.474 22.948-11.564 2.453-1.333 4.339-3.723 6.452-5.661 6.997-6.417 13.983-12.847 20.966-19.278.427-.395.933-.777 1.188-1.275 2.508-4.902 4.973-9.829 7.525-14.898-3.043-1.144-5.928-2.263-8.849-3.281-.396-.138-1.02.136-1.449.375-6.761 3.777-13.649 7.353-20.195 11.472-3.275 2.061-5.943 5.098-8.843 7.743-4.674 4.266-9.342 8.542-13.948 12.882-1.222 1.152-2.336 2.468-3.288 3.854-3.15 4.587-6.206 9.24-9.402 14.025 1.786 1.847 3.41 3.613 5.148 5.259zM44.354 59.949c-3.825 16.159-7.627 32.227-11.556 48.823 18.423-11.871 36.421-23.468 54.3-34.987-14.228-4.605-28.41-9.196-42.744-13.836zM120.985 25.103c-15.566 2.601-30.76 5.139-46.15 7.71 5.242 12.751 10.379 25.246 15.662 38.096 10.221-15.359 20.24-30.41 30.488-45.806zM44.996 56.644c14.017 4.55 27.755 9.01 41.892 13.6-5.25-12.79-10.32-25.133-15.495-37.737-8.815 8.059-17.498 15.999-26.397 24.137zM16.831 75.643c-4.971 11.883-9.773 23.362-14.662 35.048 9.396-.278 18.504-.547 27.925-.825-4.423-11.412-8.759-22.6-13.263-34.223zM30.424 101.739l.346-.076c3.353-13.941 6.754-27.786 10.177-42.272-7.636 3.969-14.92 7.754-22.403 11.644 3.819 9.926 7.891 20.397 11.88 30.704zM115.351 22.842c-4.459-1.181-8.918-2.366-13.379-3.539-6.412-1.686-12.829-3.351-19.237-5.052-.801-.213-1.38-.352-1.851.613-2.265 4.64-4.6 9.245-6.901 13.868-.071.143-.056.328-.111.687 13.886-2.104 27.679-4.195 41.47-6.285l.009-.292zM89.482 12.288l36.343 10.054c-2.084-5.939-4.017-11.446-6.005-17.11l-30.285 6.715-.053.341zM33.505 114.007c-4.501-.519-9.122-.042-13.687.037-3.75.063-7.5.206-11.25.323-.386.012-.771.09-1.156.506 31.003 2.866 62.005 5.732 93.007 8.6l.063-.414c-9.938-1.357-19.877-2.714-29.815-4.07-12.384-1.691-24.747-3.551-37.162-4.982zM2.782 99.994c3.995-9.27 7.973-18.546 11.984-27.809.401-.929.37-1.56-.415-2.308-1.678-1.597-3.237-3.318-5.071-5.226-2.479 12.24-4.897 24.177-7.317 36.113l.271.127c.185-.297.411-.578.548-.897zM81.522 9.841c6.737-1.738 13.572-3.097 20.367-4.613.44-.099.87-.244 1.303-.368l-.067-.332c-9.571 1.287-19.141 2.575-29.194 3.928 2.741 1.197 4.853 2.091 7.591 1.385z" style="fill: rgb(255, 255, 255);"/>
+  <path fill-rule="evenodd" clip-rule="evenodd" d="M35.971 111.33c27.466 3.75 54.444 7.433 81.958 11.188-9.374-15.606-18.507-30.813-27.713-46.144l-54.245 34.956zM125.681 24.947c-2.421 3.636-4.847 7.269-7.265 10.907-8.304 12.493-16.607 24.986-24.903 37.485-.462.696-1.061 1.248-.41 2.321 8.016 13.237 15.969 26.513 23.942 39.777 1.258 2.095 2.53 4.182 4.157 6.192 1.612-32.193 3.223-64.387 4.834-96.58l-.355-.102zM16.252 66.22c.375.355 1.311.562 1.747.347 7.689-3.779 15.427-7.474 22.948-11.564 2.453-1.333 4.339-3.723 6.452-5.661 6.997-6.417 13.983-12.847 20.966-19.278.427-.395.933-.777 1.188-1.275 2.508-4.902 4.973-9.829 7.525-14.898-3.043-1.144-5.928-2.263-8.849-3.281-.396-.138-1.02.136-1.449.375-6.761 3.777-13.649 7.353-20.195 11.472-3.275 2.061-5.943 5.098-8.843 7.743-4.674 4.266-9.342 8.542-13.948 12.882-1.222 1.152-2.336 2.468-3.288 3.854-3.15 4.587-6.206 9.24-9.402 14.025 1.786 1.847 3.41 3.613 5.148 5.259zM44.354 59.949c-3.825 16.159-7.627 32.227-11.556 48.823 18.423-11.871 36.421-23.468 54.3-34.987-14.228-4.605-28.41-9.196-42.744-13.836zM120.985 25.103c-15.566 2.601-30.76 5.139-46.15 7.71 5.242 12.751 10.379 25.246 15.662 38.096 10.221-15.359 20.24-30.41 30.488-45.806zM44.996 56.644c14.017 4.55 27.755 9.01 41.892 13.6-5.25-12.79-10.32-25.133-15.495-37.737-8.815 8.059-17.498 15.999-26.397 24.137zM16.831 75.643c-4.971 11.883-9.773 23.362-14.662 35.048 9.396-.278 18.504-.547 27.925-.825-4.423-11.412-8.759-22.6-13.263-34.223zM30.424 101.739l.346-.076c3.353-13.941 6.754-27.786 10.177-42.272-7.636 3.969-14.92 7.754-22.403 11.644 3.819 9.926 7.891 20.397 11.88 30.704zM115.351 22.842c-4.459-1.181-8.918-2.366-13.379-3.539-6.412-1.686-12.829-3.351-19.237-5.052-.801-.213-1.38-.352-1.851.613-2.265 4.64-4.6 9.245-6.901 13.868-.071.143-.056.328-.111.687 13.886-2.104 27.679-4.195 41.47-6.285l.009-.292zM89.482 12.288l36.343 10.054c-2.084-5.939-4.017-11.446-6.005-17.11l-30.285 6.715-.053.341zM33.505 114.007c-4.501-.519-9.122-.042-13.687.037-3.75.063-7.5.206-11.25.323-.386.012-.771.09-1.156.506 31.003 2.866 62.005 5.732 93.007 8.6l.063-.414c-9.938-1.357-19.877-2.714-29.815-4.07-12.384-1.691-24.747-3.551-37.162-4.982zM2.782 99.994c3.995-9.27 7.973-18.546 11.984-27.809.401-.929.37-1.56-.415-2.308-1.678-1.597-3.237-3.318-5.071-5.226-2.479 12.24-4.897 24.177-7.317 36.113l.271.127c.185-.297.411-.578.548-.897zM81.522 9.841c6.737-1.738 13.572-3.097 20.367-4.613.44-.099.87-.244 1.303-.368l-.067-.332c-9.571 1.287-19.141 2.575-29.194 3.928 2.741 1.197 4.853 2.091 7.591 1.385z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/scala.svg b/static/images/platforms/dark/scala.svg
index 0267a43a7cf..9c66c21d035 100644
--- a/static/images/platforms/dark/scala.svg
+++ b/static/images/platforms/dark/scala.svg
@@ -1,20 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
-  <defs>
-    <linearGradient x1="0" y1="0.5" x2="1" y2="0.5" id="linearGradient-1">
-      <stop stop-color="#4F4F4F" offset="0"/>
-      <stop stop-color="#000000" offset="1"/>
-    </linearGradient>
-    <linearGradient x1="0" y1="0.5" x2="1" y2="0.5" id="linearGradient-2">
-      <stop stop-color="#C40000" offset="0"/>
-      <stop stop-color="#FF0000" offset="1"/>
-    </linearGradient>
-  </defs>
   <g transform="matrix(0.592336, 0, 0, 0.592336, 52.180992, 4.794112)">
-    <path d="M0,288 L0,256 C0,250.606222 116.376889,241.571556 192.199111,224 L192.199111,224 C228.828444,232.490667 256,242.968889 256,256 L256,256 L256,288 C256,301.024 228.828444,311.509333 192.199111,320 L192.199111,320 C116.376889,302.424889 0,293.390222 0,288" fill="url(#linearGradient-1)" transform="translate(128.000000, 272.000000) scale(1, -1) translate(-128.000000, -272.000000) "/>
-    <path d="M0,160 L0,128 C0,122.606222 116.376889,113.571556 192.199111,96 L192.199111,96 C228.828444,104.490667 256,114.968889 256,128 L256,128 L256,160 C256,173.024 228.828444,183.509333 192.199111,192 L192.199111,192 C116.376889,174.424889 0,165.390222 0,160" fill="url(#linearGradient-1)" transform="translate(128.000000, 144.000000) scale(1, -1) translate(-128.000000, -144.000000) "/>
-    <path d="M0,224 L0,128 C0,136 256,152 256,192 L256,192 L256,288 C256,248 0,232 0,224" fill="url(#linearGradient-2)" transform="translate(128.000000, 208.000000) scale(1, -1) translate(-128.000000, -208.000000) "/>
-    <path d="M0,96 L0,0 C0,8 256,24 256,64 L256,64 L256,160 C256,120 0,104 0,96" fill="url(#linearGradient-2)" transform="translate(128.000000, 80.000000) scale(1, -1) translate(-128.000000, -80.000000) "/>
-    <path d="M0,352 L0,256 C0,264 256,280 256,320 L256,320 L256,416 C256,376 0,360 0,352" fill="url(#linearGradient-2)" transform="translate(128.000000, 336.000000) scale(1, -1) translate(-128.000000, -336.000000) "/>
+    <path d="M 0 288 L 0 192 C 0 188.565 47.207 183.654 101.078 176.001 C 47.207 168.347 0 163.435 0 160 L 0 64 C 0 56 256 40 256 0 L 256 96 C 256 101.827 250.567 107.145 241.284 112.003 C 250.567 116.86 256 122.176 256 128 L 256 224 C 256 229.827 250.567 235.145 241.284 240.003 C 250.567 244.86 256 250.176 256 256 L 256 352 C 256 392 0 408 0 416 L 0 320 C 0 316.565 47.207 311.654 101.078 304.001 C 47.207 296.347 0 291.435 0 288 Z" style="fill: rgb(228, 228, 231);"/>
+    <path d="M -0.5 288 L -0.5 192 C -0.442 191.625 -0.147 191.183 0.276 190.916 C 0.667 190.669 1.254 190.413 1.972 190.167 C 3.389 189.682 5.475 189.171 8.119 188.637 C 13.397 187.572 20.996 186.395 30.268 185.087 C 48.807 182.473 71.893 179.604 97.506 176.001 C 71.893 172.398 48.807 169.528 30.268 166.913 C 20.996 165.606 13.397 164.428 8.119 163.363 C 5.475 162.829 3.389 162.318 1.972 161.833 C 1.254 161.587 0.667 161.331 0.276 161.085 C -0.147 160.817 -0.442 160.375 -0.5 160 L -0.5 64 C -0.429 63.576 -0.055 63.089 0.494 62.788 C 1.008 62.505 1.776 62.212 2.73 61.924 C 4.624 61.352 7.402 60.744 10.91 60.102 C 17.919 58.819 27.931 57.38 39.933 55.755 C 63.935 52.504 95.93 48.505 127.923 43.506 C 159.915 38.507 191.881 32.514 215.855 25.271 C 227.836 21.652 237.776 17.738 244.739 13.48 C 251.674 9.238 255.561 4.836 255.5 0 L 256.5 0 L 256.5 96 C 256.425 102.006 251.187 107.212 242.347 112.003 C 251.689 116.903 256.425 121.997 256.5 128 L 256.5 224 C 256.425 230.006 251.187 235.212 242.347 240.003 C 251.689 244.903 256.425 249.997 256.5 256 L 256.5 352 C 256.439 357.164 252.326 362.012 245.261 366.333 C 238.224 370.637 228.164 374.598 216.145 378.229 C 192.119 385.486 160.085 391.493 128.077 396.494 C 96.07 401.495 64.065 405.496 40.067 408.745 C 28.069 410.37 18.081 411.806 11.09 413.086 C 7.598 413.725 4.876 414.32 3.02 414.881 C 2.099 415.159 1.429 415.415 0.975 415.664 C 0.555 415.895 0.429 415.924 0.5 416 L -0.5 414.923 L -0.5 320 C -0.442 319.625 -0.147 319.183 0.276 318.916 C 0.667 318.669 1.254 318.413 1.972 318.167 C 3.389 317.682 5.475 317.171 8.119 316.637 C 13.397 315.572 20.996 314.395 30.268 313.087 C 48.807 310.473 71.893 307.604 97.506 304.001 C 71.893 300.398 48.807 297.528 30.268 294.913 C 20.996 293.606 13.397 292.428 8.119 291.363 C 5.475 290.829 3.389 290.318 1.972 289.833 C 1.254 289.587 0.667 289.331 0.276 289.085 C -0.147 288.817 -0.442 288.375 -0.5 288 Z M 0.81 288.239 C 1.137 288.445 1.617 288.654 2.296 288.887 C 3.671 289.358 5.693 289.853 8.317 290.383 C 13.573 291.444 21.143 292.617 30.407 293.923 C 48.939 296.537 74.209 299.678 101.148 303.506 L 104.633 304.001 L 101.148 304.496 C 74.209 308.323 48.939 311.464 30.407 314.077 C 21.143 315.384 13.573 316.557 8.317 317.617 C 5.693 318.147 3.67 318.643 2.296 319.113 C 1.617 319.346 1.137 319.555 0.81 319.761 C 0.516 319.947 0.442 319.946 0.5 320 L 0.5 414.784 C 1.014 414.503 1.78 414.211 2.73 413.924 C 4.624 413.352 7.402 412.744 10.91 412.102 C 17.919 410.819 27.931 409.38 39.933 407.755 C 63.935 404.504 95.93 400.505 127.923 395.506 C 159.915 390.507 191.881 384.514 215.855 377.271 C 227.836 373.652 237.776 369.738 244.739 365.48 C 251.674 361.238 255.561 356.836 255.5 352 L 255.5 256 C 255.575 250.355 250.276 245.26 241.052 240.446 L 240.203 240.003 L 241.052 239.56 C 250.276 234.745 255.575 229.648 255.5 224 L 255.5 128 C 255.575 122.355 250.276 117.26 241.052 112.446 L 240.203 112.003 L 241.052 111.56 C 250.276 106.745 255.575 101.648 255.5 96 L 255.5 4.302 C 253.875 7.865 252.326 10.012 245.261 14.333 C 238.224 18.637 228.164 22.598 216.145 26.229 C 192.119 33.486 160.085 39.493 128.077 44.494 C 96.07 49.495 64.065 53.496 40.067 56.745 C 28.069 58.37 18.081 59.806 11.09 61.086 C 7.598 61.725 4.876 62.32 3.02 62.881 C 2.099 63.159 1.429 63.415 0.975 63.664 C 0.555 63.895 0.429 63.924 0.5 64 L 0.5 160 C 0.442 160.054 0.516 160.053 0.81 160.239 C 1.137 160.445 1.617 160.654 2.296 160.887 C 3.671 161.358 5.693 161.853 8.317 162.383 C 13.573 163.444 21.143 164.617 30.407 165.923 C 48.939 168.537 74.209 171.678 101.148 175.506 L 104.633 176.001 L 101.148 176.496 C 74.209 180.323 48.939 183.464 30.407 186.077 C 21.143 187.384 13.573 188.557 8.317 189.617 C 5.693 190.147 3.671 190.643 2.296 191.113 C 1.617 191.346 1.137 191.555 0.81 191.761 C 0.516 191.947 0.442 191.946 0.5 192 L 0.5 288 C 0.442 288.054 0.516 288.053 0.81 288.239 Z" style="fill: none;"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/svelte.svg b/static/images/platforms/dark/svelte.svg
index a5203cf77e0..08478f74051 100644
--- a/static/images/platforms/dark/svelte.svg
+++ b/static/images/platforms/dark/svelte.svg
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M 110.846 18.026 C 99.182 1.33 76.145 -3.618 59.489 6.995 L 30.236 25.639 C 22.247 30.666 16.741 38.826 15.075 48.118 C 13.68 55.859 14.906 63.844 18.56 70.809 C 16.056 74.607 14.348 78.875 13.54 83.352 C 11.856 92.822 14.059 102.571 19.649 110.399 C 31.317 127.094 54.353 132.04 71.007 121.428 L 100.259 102.784 C 108.251 97.757 113.754 89.597 115.421 80.305 C 116.816 72.564 115.59 64.581 111.939 57.615 C 114.442 53.815 116.148 49.549 116.956 45.072 C 118.641 35.602 116.439 25.852 110.847 18.026" style="fill: rgb(255, 255, 255);"/>
-  <path d="M 56.632 111.968 C 47.202 114.421 37.245 110.729 31.692 102.725 C 28.328 98.017 27.004 92.154 28.017 86.459 C 28.187 85.534 28.421 84.622 28.716 83.728 L 29.267 82.048 L 30.766 83.148 C 34.226 85.692 38.097 87.626 42.209 88.866 L 43.295 89.195 L 43.195 90.28 C 43.063 91.825 43.481 93.366 44.376 94.63 C 46.046 97.042 49.045 98.155 51.884 97.418 C 52.52 97.247 53.125 96.982 53.681 96.627 L 82.935 77.986 C 84.382 77.074 85.381 75.596 85.683 73.914 C 85.987 72.196 85.588 70.43 84.576 69.011 C 82.903 66.598 79.905 65.485 77.064 66.222 C 76.43 66.393 75.823 66.658 75.269 67.012 L 64.107 74.128 C 62.271 75.295 60.268 76.174 58.166 76.735 C 48.737 79.187 38.78 75.496 33.227 67.491 C 29.863 62.784 28.539 56.921 29.552 51.226 C 30.555 45.638 33.864 40.732 38.67 37.71 L 67.921 19.067 C 69.757 17.897 71.762 17.017 73.865 16.454 C 83.294 14.003 93.252 17.694 98.805 25.699 C 102.168 30.405 103.492 36.268 102.48 41.964 C 102.309 42.889 102.076 43.802 101.781 44.696 L 101.23 46.376 L 99.732 45.277 C 96.27 42.733 92.401 40.798 88.288 39.557 L 87.2 39.227 L 87.302 38.142 C 87.433 36.599 87.014 35.058 86.122 33.792 C 84.449 31.381 81.451 30.269 78.612 31.005 C 77.976 31.176 77.371 31.442 76.815 31.795 L 47.562 50.439 C 46.115 51.349 45.117 52.827 44.815 54.51 C 44.51 56.225 44.909 57.993 45.921 59.412 C 47.593 61.824 50.591 62.937 53.433 62.201 C 54.068 62.031 54.673 61.763 55.23 61.412 L 66.39 54.298 C 68.225 53.129 70.228 52.249 72.33 51.687 C 81.76 49.235 91.717 52.926 97.27 60.931 C 100.633 65.639 101.958 71.502 100.946 77.196 C 99.941 82.785 96.632 87.692 91.826 90.716 L 62.576 109.357 C 60.739 110.527 58.735 111.407 56.632 111.968" style="fill: rgb(28, 33, 56);"/>
+  <path d="M 110.847 18.026 C 116.439 25.852 118.641 35.602 116.956 45.072 C 116.148 49.549 114.442 53.815 111.939 57.615 C 115.59 64.581 116.816 72.564 115.421 80.305 C 113.754 89.597 108.251 97.757 100.259 102.784 L 71.007 121.428 C 54.353 132.04 31.317 127.094 19.649 110.399 C 14.059 102.571 11.856 92.822 13.54 83.352 C 14.348 78.875 16.056 74.607 18.56 70.809 C 14.906 63.844 13.68 55.859 15.075 48.118 C 16.741 38.826 22.247 30.666 30.236 25.639 L 59.489 6.995 C 76.145 -3.618 99.182 1.33 110.846 18.026 Z M 62.576 109.357 L 91.826 90.716 C 96.632 87.692 99.941 82.785 100.946 77.196 C 101.958 71.502 100.633 65.639 97.27 60.931 C 91.717 52.926 81.76 49.235 72.33 51.687 C 70.228 52.249 68.225 53.129 66.39 54.298 L 55.23 61.412 C 54.673 61.763 54.068 62.031 53.433 62.201 C 50.591 62.937 47.593 61.824 45.921 59.412 C 44.909 57.993 44.51 56.225 44.815 54.51 C 45.117 52.827 46.115 51.349 47.562 50.439 L 76.815 31.795 C 77.371 31.442 77.976 31.176 78.612 31.005 C 81.451 30.269 84.449 31.381 86.122 33.792 C 87.014 35.058 87.433 36.599 87.302 38.142 L 87.2 39.227 L 88.288 39.557 C 92.401 40.798 96.27 42.733 99.732 45.277 L 101.23 46.376 L 101.781 44.696 C 102.076 43.802 102.309 42.889 102.48 41.964 C 103.492 36.268 102.168 30.405 98.805 25.699 C 93.252 17.694 83.294 14.003 73.865 16.454 C 71.762 17.017 69.757 17.897 67.921 19.067 L 38.67 37.71 C 33.864 40.732 30.555 45.638 29.552 51.226 C 28.539 56.921 29.863 62.784 33.227 67.491 C 38.78 75.496 48.737 79.187 58.166 76.735 C 60.268 76.174 62.271 75.295 64.107 74.128 L 75.269 67.012 C 75.823 66.658 76.43 66.393 77.064 66.222 C 79.905 65.485 82.903 66.598 84.576 69.011 C 85.588 70.43 85.987 72.196 85.683 73.914 C 85.381 75.596 84.382 77.074 82.935 77.986 L 53.681 96.627 C 53.125 96.982 52.52 97.247 51.884 97.418 C 49.045 98.155 46.046 97.042 44.376 94.63 C 43.481 93.366 43.063 91.825 43.195 90.28 L 43.295 89.195 L 42.209 88.866 C 38.097 87.626 34.226 85.692 30.766 83.148 L 29.267 82.048 L 28.716 83.728 C 28.421 84.622 28.187 85.534 28.017 86.459 C 27.004 92.154 28.328 98.017 31.692 102.725 C 37.245 110.729 47.202 114.421 56.632 111.968 C 58.735 111.407 60.739 110.527 62.576 109.357 Z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/swift.svg b/static/images/platforms/dark/swift.svg
index 492c9cf837c..af813944833 100755
--- a/static/images/platforms/dark/swift.svg
+++ b/static/images/platforms/dark/swift.svg
@@ -5,7 +5,6 @@
   </defs>
   <title>Artboard 1</title>
   <g id="orignal">
-    <path class="cls-1" d="M126.33,34.06a39.32,39.32,0,0,0-.79-7.83,28.78,28.78,0,0,0-2.65-7.58,28.84,28.84,0,0,0-4.76-6.32,23.42,23.42,0,0,0-6.62-4.55,27.27,27.27,0,0,0-7.68-2.53c-2.65-.51-5.56-.51-8.21-.76H30.25A45.46,45.46,0,0,0,24.16,5a21.82,21.82,0,0,0-5.82,1.52c-.53.25-1.32.51-1.85.76a33.82,33.82,0,0,0-5,3.28c-.53.51-1.06.76-1.59,1.26a22.41,22.41,0,0,0-4.76,6.32,23.61,23.61,0,0,0-2.65,7.58,78.5,78.5,0,0,0-.79,7.83V93.94a39.32,39.32,0,0,0,.79,7.83,28.78,28.78,0,0,0,2.65,7.58,28.84,28.84,0,0,0,4.76,6.32,23.42,23.42,0,0,0,6.62,4.55,27.27,27.27,0,0,0,7.68,2.53c2.65.51,5.56.51,8.21.76H95.63a45.08,45.08,0,0,0,8.21-.76,27.27,27.27,0,0,0,7.68-2.53,30.13,30.13,0,0,0,6.62-4.55,22.41,22.41,0,0,0,4.76-6.32,23.61,23.61,0,0,0,2.65-7.58,78.49,78.49,0,0,0,.79-7.83V34.06Z" style="fill: rgb(255, 255, 255);"/>
-    <path class="cls-2" d="M85,96.5c-11.11,6.13-26.38,6.76-41.75.47A64.53,64.53,0,0,1,13.84,73a50,50,0,0,0,10.85,6.32c15.87,7.1,31.73,6.61,42.9,0l0,0C51.69,67.66,38.19,52.5,28.13,40.12a43.47,43.47,0,0,1-5.29-6.82C35,43.91,54.34,57.3,61.22,61.09a271.77,271.77,0,0,1-27-32.34A266.8,266.8,0,0,0,78.69,63.62c.71.38,1.26.7,1.7,1a32.7,32.7,0,0,0,1.21-3.51c3.71-12.89-.53-27.54-9.79-39.67C93.25,33.81,106,57.05,100.66,76.51c-.14.53-.29,1-.45,1.55l.19.22c10.59,12.63,7.68,26,6.35,23.5C101,91,90.37,94.33,85,96.5Z" style="fill: rgb(28, 33, 56);"/>
+    <path class="cls-1" d="M 126.34 34.06 L 126.34 93.94 C 126.208 96.562 125.944 99.175 125.55 101.77 C 125.106 104.429 124.21 106.993 122.9 109.35 C 121.701 111.722 120.089 113.862 118.14 115.67 C 116.146 117.475 113.92 119.006 111.52 120.22 C 109.1 121.44 106.512 122.293 103.84 122.75 C 101.132 123.254 98.384 123.508 95.63 123.51 L 32.41 123.51 C 29.76 123.26 26.85 123.26 24.2 122.75 C 21.528 122.293 18.94 121.44 16.52 120.22 C 14.068 119.096 11.828 117.557 9.9 115.67 C 8.031 113.792 6.429 111.665 5.14 109.35 C 3.907 106.96 3.015 104.408 2.49 101.77 C 1.965 99.193 1.701 96.57 1.7 93.94 L 1.7 33.55 C 1.832 30.928 2.096 28.315 2.49 25.72 C 2.934 23.061 3.83 20.497 5.14 18.14 C 6.339 15.768 7.951 13.628 9.9 11.82 C 10.43 11.32 10.96 11.07 11.49 10.56 C 13.057 9.321 14.73 8.224 16.49 7.28 C 17.02 7.03 17.81 6.77 18.34 6.52 C 20.201 5.747 22.159 5.236 24.16 5 C 26.176 4.694 28.211 4.523 30.25 4.49 L 95.62 4.49 C 98.27 4.74 101.18 4.74 103.83 5.25 C 106.502 5.707 109.09 6.56 111.51 7.78 C 113.962 8.904 116.202 10.443 118.13 12.33 C 119.999 14.208 121.601 16.335 122.89 18.65 C 124.123 21.04 125.015 23.592 125.54 26.23 C 126.065 28.807 126.329 31.43 126.33 34.06 Z M 95.702 94.783 C 99.66 95.021 103.551 96.735 106.309 102.015 C 106.431 102.226 106.64 102.457 106.83 102.532 C 107.054 102.62 107.43 102.539 107.608 102.394 C 107.875 102.178 108.131 101.665 108.291 101.068 C 108.597 99.927 108.762 98.006 108.543 95.657 C 108.108 91.001 106.126 84.364 100.783 77.959 L 100.767 77.94 C 100.897 77.5 100.999 77.182 101.143 76.639 C 103.817 66.801 101.956 55.939 96.719 46.082 C 91.487 36.233 82.835 27.235 72.06 21.007 L 69.889 19.752 L 71.413 21.743 C 80.631 33.791 84.83 48.22 81.12 60.972 C 80.787 62.15 80.615 62.739 80.15 63.872 C 79.802 63.66 79.652 63.568 78.941 63.187 C 62.952 53.188 48.096 41.539 34.568 28.391 L 33.812 29.04 C 41.974 40.517 49.457 49.468 58.312 58.791 C 49.85 53.55 35.307 43.516 23.169 32.923 L 20.612 30.692 L 22.416 33.566 C 23.963 36.029 25.758 38.343 27.754 40.45 C 37.82 52.836 50.741 67.574 66.68 79.27 C 55.672 85.481 40.654 85.942 24.894 78.864 C 21.054 77.235 17.455 75.14 14.144 72.603 L 11.743 70.763 L 13.424 73.278 C 20.654 84.089 31.014 92.533 43.062 97.433 C 58.536 103.741 73.994 103.113 85.215 96.953 C 87.886 95.874 91.75 94.545 95.702 94.783 Z" style="fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/typescript.svg b/static/images/platforms/dark/typescript.svg
index 51eaae1b8e7..92f40e0836c 100644
--- a/static/images/platforms/dark/typescript.svg
+++ b/static/images/platforms/dark/typescript.svg
@@ -5,7 +5,6 @@
   </defs>
   <title>Artboard 3</title>
   <g id="original">
-    <rect class="cls-1" x="22.67" y="47" width="99.67" height="73.67" style="fill: rgb(28, 33, 56);"/>
-    <path id="original-2" data-name="original" class="cls-2" d="M1.5,63.91v62.5h125V1.41H1.5Zm100.73-5a15.56,15.56,0,0,1,7.82,4.5,20.58,20.58,0,0,1,3,4c0,.16-5.4,3.81-8.69,5.85-.12.08-.6-.44-1.13-1.23a7.09,7.09,0,0,0-5.87-3.53c-3.79-.26-6.23,1.73-6.21,5a4.58,4.58,0,0,0,.54,2.34c.83,1.73,2.38,2.76,7.24,4.86,8.95,3.85,12.78,6.39,15.16,10,2.66,4,3.25,10.46,1.45,15.24-2,5.2-6.9,8.73-13.83,9.9a38.32,38.32,0,0,1-9.52-.1,23,23,0,0,1-12.72-6.63c-1.15-1.27-3.39-4.58-3.25-4.82a9.34,9.34,0,0,1,1.15-.73L82,101l3.59-2.08.75,1.11a16.78,16.78,0,0,0,4.74,4.54c4,2.1,9.46,1.81,12.16-.62a5.43,5.43,0,0,0,.69-6.92c-1-1.39-3-2.56-8.59-5-6.45-2.78-9.23-4.5-11.77-7.24a16.48,16.48,0,0,1-3.43-6.25,25,25,0,0,1-.22-8c1.33-6.23,6-10.58,12.82-11.87A31.66,31.66,0,0,1,102.23,58.93ZM72.89,64.15l0,5.12H56.66V115.5H45.15V69.26H28.88v-5A49.19,49.19,0,0,1,29,59.09C29.08,59,39,59,51,59L72.83,59Z" style="fill: rgb(255, 255, 255);"/>
+    <path id="original-2" data-name="original" class="cls-2" d="M1.5,63.91v62.5h125V1.41H1.5Zm100.73-5a15.56,15.56,0,0,1,7.82,4.5,20.58,20.58,0,0,1,3,4c0,.16-5.4,3.81-8.69,5.85-.12.08-.6-.44-1.13-1.23a7.09,7.09,0,0,0-5.87-3.53c-3.79-.26-6.23,1.73-6.21,5a4.58,4.58,0,0,0,.54,2.34c.83,1.73,2.38,2.76,7.24,4.86,8.95,3.85,12.78,6.39,15.16,10,2.66,4,3.25,10.46,1.45,15.24-2,5.2-6.9,8.73-13.83,9.9a38.32,38.32,0,0,1-9.52-.1,23,23,0,0,1-12.72-6.63c-1.15-1.27-3.39-4.58-3.25-4.82a9.34,9.34,0,0,1,1.15-.73L82,101l3.59-2.08.75,1.11a16.78,16.78,0,0,0,4.74,4.54c4,2.1,9.46,1.81,12.16-.62a5.43,5.43,0,0,0,.69-6.92c-1-1.39-3-2.56-8.59-5-6.45-2.78-9.23-4.5-11.77-7.24a16.48,16.48,0,0,1-3.43-6.25,25,25,0,0,1-.22-8c1.33-6.23,6-10.58,12.82-11.87A31.66,31.66,0,0,1,102.23,58.93ZM72.89,64.15l0,5.12H56.66V115.5H45.15V69.26H28.88v-5A49.19,49.19,0,0,1,29,59.09C29.08,59,39,59,51,59L72.83,59Z" style="fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/vue.svg b/static/images/platforms/dark/vue.svg
index de6ea8f3994..e607c5f08ad 100644
--- a/static/images/platforms/dark/vue.svg
+++ b/static/images/platforms/dark/vue.svg
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg height="128" viewBox="0 0 128 128" width="128" version="1.1" xmlns="http://www.w3.org/2000/svg">
   <g transform="matrix(.31919 0 0 .31919 .31532 .63390)">
-    <path d="m-0.9879 26.003 156.19 0.497 44.8 76.49 44.8-76.49 155.23-0.495-199.99 345.04zm397.84 1.997-76.35 0.065-120.53 206.94-120.47-206.94-77.54-0.06 198.04 338.01z" style="fill: rgb(255, 255, 255);"/>
+    <path d="m-0.9879 26.003 156.19 0.497 44.8 76.49 44.8-76.49 155.23-0.495-199.99 345.04zm397.84 1.997-76.35 0.065-120.53 206.94-120.47-206.94-77.54-0.06 198.04 338.01z" style="fill: rgb(228, 228, 231);"/>
   </g>
 </svg>
\ No newline at end of file
diff --git a/static/images/platforms/dark/web.svg b/static/images/platforms/dark/web.svg
index 9d84b3a6d28..17ad0e656c8 100755
--- a/static/images/platforms/dark/web.svg
+++ b/static/images/platforms/dark/web.svg
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
-  <path d="M1.408 1.408h125.184v125.185h-125.184z" style="fill: rgb(255, 255, 255);"/>
-  <path d="M116.347 96.736c-.917-5.711-4.641-10.508-15.672-14.981-3.832-1.761-8.104-3.022-9.377-5.926-.452-1.69-.512-2.642-.226-3.665.821-3.32 4.784-4.355 7.925-3.403 2.023.678 3.938 2.237 5.093 4.724 5.402-3.498 5.391-3.475 9.163-5.879-1.381-2.141-2.118-3.129-3.022-4.045-3.249-3.629-7.676-5.498-14.756-5.355l-3.688.477c-3.534.893-6.902 2.748-8.877 5.235-5.926 6.724-4.236 18.492 2.975 23.335 7.104 5.332 17.54 6.545 18.873 11.531 1.297 6.104-4.486 8.08-10.234 7.378-4.236-.881-6.592-3.034-9.139-6.949-4.688 2.713-4.688 2.713-9.508 5.485 1.143 2.499 2.344 3.63 4.26 5.795 9.068 9.198 31.76 8.746 35.83-5.176.165-.478 1.261-3.666.38-8.581zm-46.885-37.793h-11.709l-.048 30.272c0 6.438.333 12.34-.714 14.149-1.713 3.558-6.152 3.117-8.175 2.427-2.059-1.012-3.106-2.451-4.319-4.485-.333-.584-.583-1.036-.667-1.071l-9.52 5.83c1.583 3.249 3.915 6.069 6.902 7.901 4.462 2.678 10.459 3.499 16.731 2.059 4.082-1.189 7.604-3.652 9.448-7.401 2.666-4.915 2.094-10.864 2.07-17.444.06-10.735.001-21.468.001-32.237z" style="fill: rgb(28, 33, 56);"/>
+  <path d="M 1.408 1.408 L 126.592 1.408 L 126.592 126.593 L 1.408 126.593 Z M 116.347 96.736 C 115.43 91.025 111.706 86.228 100.675 81.755 C 96.843 79.994 92.571 78.733 91.298 75.829 C 90.846 74.139 90.786 73.187 91.072 72.164 C 91.893 68.844 95.856 67.809 98.997 68.761 C 101.02 69.439 102.935 70.998 104.09 73.485 C 109.492 69.987 109.481 70.01 113.253 67.606 C 111.872 65.465 111.135 64.477 110.231 63.561 C 106.982 59.932 102.555 58.063 95.475 58.206 L 91.787 58.683 C 88.253 59.576 84.885 61.431 82.91 63.918 C 76.984 70.642 78.674 82.41 85.885 87.253 C 92.989 92.585 103.425 93.798 104.758 98.784 C 106.055 104.888 100.272 106.864 94.524 106.162 C 90.288 105.281 87.932 103.128 85.385 99.213 C 80.697 101.926 80.697 101.926 75.877 104.698 C 77.02 107.197 78.221 108.328 80.137 110.493 C 89.205 119.691 111.897 119.239 115.967 105.317 C 116.132 104.839 117.228 101.651 116.347 96.736 Z M 69.462 58.943 L 57.753 58.943 L 57.705 89.215 C 57.705 95.653 58.038 101.555 56.991 103.364 C 55.278 106.922 50.839 106.481 48.816 105.791 C 46.757 104.779 45.71 103.34 44.497 101.306 C 44.164 100.722 43.914 100.27 43.83 100.235 L 34.31 106.065 C 35.893 109.314 38.225 112.134 41.212 113.966 C 45.674 116.644 51.671 117.465 57.943 116.025 C 62.025 114.836 65.547 112.373 67.391 108.624 C 70.057 103.709 69.485 97.76 69.461 91.18 C 69.521 80.445 69.462 69.712 69.462 58.943 Z" style="fill: rgb(228, 228, 231);"/>
+  <path d="M 116.84 96.653 C 117.711 101.693 116.619 104.958 116.443 105.47 C 115.378 109.04 113.104 111.814 110.2 113.711 C 107.301 115.606 103.682 116.716 99.974 117.073 C 92.57 117.785 84.408 115.489 79.763 110.824 C 77.862 108.676 76.621 107.483 75.422 104.906 L 75.23 104.493 L 75.628 104.265 C 78.038 102.879 79.242 102.186 80.431 101.5 C 81.619 100.815 82.791 100.137 85.135 98.78 L 85.546 98.542 L 85.804 98.94 C 88.31 102.807 90.5 104.844 94.604 105.668 C 97.413 106.015 100.116 105.711 102.031 104.593 C 102.975 104.042 103.642 103.362 104.056 102.411 C 104.474 101.45 104.595 100.364 104.275 98.913 C 103.733 96.577 100.933 95.192 97.286 93.607 C 93.635 92.019 89.207 90.356 85.594 87.66 C 81.915 85.148 79.57 80.832 78.975 76.357 C 78.381 71.882 79.514 67.068 82.526 63.597 C 84.577 61.047 88.071 59.115 91.665 58.198 L 91.693 58.191 L 95.439 57.707 L 95.465 57.706 C 102.647 57.583 107.257 59.532 110.595 63.218 C 111.521 64.16 112.282 65.18 113.673 67.335 L 113.946 67.757 L 113.522 68.028 C 111.635 69.23 110.695 69.825 109.552 70.556 C 108.409 71.288 107.062 72.156 104.362 73.905 L 103.874 74.22 L 103.637 73.696 C 102.55 71.297 100.787 69.873 98.845 69.237 C 97.352 68.774 95.746 68.804 94.339 69.329 C 92.941 69.851 91.89 70.763 91.554 72.299 C 91.276 73.239 91.336 74.049 91.773 75.67 C 92.912 78.404 97.011 79.525 100.874 81.296 C 112.009 85.848 115.873 90.83 116.84 96.653 Z M 100.487 82.218 C 96.689 80.47 92.271 79.073 90.84 76.03 L 90.826 76 L 90.815 75.958 C 90.355 74.219 90.296 73.135 90.59 72.029 C 91.075 70.245 92.416 68.979 93.99 68.392 C 95.555 67.808 97.496 67.796 99.142 68.283 C 101.243 69.004 103.04 70.475 104.284 72.764 C 106.679 71.214 107.869 70.447 109.013 69.714 C 110.158 68.981 110.951 68.48 112.559 67.455 C 111.364 65.62 110.757 64.802 109.875 63.912 C 106.715 60.347 102.474 58.548 95.513 58.705 L 91.88 59.175 C 88.417 60.047 85.201 61.805 83.302 64.229 C 80.395 67.481 79.395 71.924 79.967 76.225 C 80.538 80.526 82.639 84.506 86.164 86.838 C 89.653 89.47 94.009 91.091 97.685 92.69 C 101.366 94.29 104.45 96.005 105.241 98.655 C 105.57 100.256 105.454 101.706 104.973 102.81 C 104.488 103.925 103.593 104.839 102.535 105.457 C 100.445 106.678 97.395 107.01 94.463 106.658 C 90.11 105.717 87.726 103.6 85.228 99.882 C 83.151 101.083 82.119 101.681 80.93 102.366 C 79.742 103.052 78.673 103.667 76.524 104.903 C 77.557 107.04 78.576 107.977 80.503 110.152 C 84.927 114.679 92.652 116.772 99.878 116.077 C 103.486 115.73 106.87 114.692 109.653 112.874 C 112.433 111.058 114.517 108.568 115.487 105.177 C 115.652 104.699 116.745 101.614 115.855 96.824 C 114.987 91.227 111.415 86.613 100.487 82.218 Z M 69.961 91.181 C 69.984 97.737 70.525 103.797 67.835 108.854 C 65.91 112.697 62.21 115.288 58.055 116.512 C 51.693 117.956 45.507 117.104 40.951 114.392 C 37.902 112.506 35.476 109.583 33.86 106.284 L 33.661 105.876 L 43.838 99.644 L 44.022 99.773 C 44.229 99.918 44.598 100.474 44.929 101.054 C 46.128 103.067 47.059 104.393 49.005 105.327 C 49.979 105.658 51.445 105.912 52.942 105.677 C 54.443 105.44 55.814 104.778 56.558 103.114 C 57.572 101.444 57.205 95.666 57.205 89.214 L 57.254 58.443 L 69.962 58.443 L 69.962 58.943 C 69.962 69.711 70.021 80.443 69.961 91.181 Z M 68.962 59.443 L 58.252 59.443 L 58.205 89.215 C 58.205 95.639 58.512 101.652 57.432 103.6 C 56.461 105.481 54.75 106.404 53.098 106.664 C 51.441 106.925 49.704 106.619 48.655 106.264 L 48.622 106.253 L 48.595 106.24 C 46.445 105.15 45.293 103.615 44.068 101.562 C 43.733 100.975 43.786 101.041 43.717 100.891 L 34.962 106.252 C 36.502 109.275 38.546 111.76 41.471 113.539 C 45.838 116.182 51.64 116.972 57.817 115.541 C 61.82 114.386 65.179 112.058 66.942 108.403 C 69.579 103.631 68.986 97.785 68.961 91.182 C 69.021 80.45 68.964 70.046 68.962 59.443 Z" style="fill: rgb(228, 228, 231);"/>
 </svg>
\ No newline at end of file
