Index: frontend/vite.config.js
===================================================================
--- frontend/vite.config.js	(revision 793ce2c999fddd728a9a4f772ab13cc20b8c9914)
+++ frontend/vite.config.js	(revision c4c43f36be9f46e4a3e8aaf7198b6db598eb6d5d)
@@ -6,3 +6,21 @@
 export default defineConfig({
   plugins: [react(), tailwindcss()],
+  server: {
+    proxy: {
+      // Dev-only Yahoo Finance proxy to avoid browser CORS.
+      // Frontend can call `/yahoo/...` and `/yahoo2/...` as same-origin.
+      '/yahoo': {
+        target: 'https://query1.finance.yahoo.com',
+        changeOrigin: true,
+        secure: true,
+        rewrite: (path) => path.replace(/^\/yahoo/, ''),
+      },
+      '/yahoo2': {
+        target: 'https://query2.finance.yahoo.com',
+        changeOrigin: true,
+        secure: true,
+        rewrite: (path) => path.replace(/^\/yahoo2/, ''),
+      },
+    },
+  },
 })
