From d217701b22107d80d8cf86c794a9e54d3c293ad1 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 21 Feb 2026 23:57:22 +0000 Subject: [PATCH 1/2] Reduce Vercel serverless function costs - Change homepage polling intervals from 20s to 5min for both active users and global stats - Increase active-users API server-side cache from 1min to 5min - Remove getServerSideProps from turing page to eliminate SSR https://claude.ai/code/session_01UGfnsFfXcafbYbt2TuFUVq --- src/components/Home/HomeHero.tsx | 8 ++++---- src/pages/api/active-users.ts | 2 +- src/pages/turing.tsx | 6 ------ 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/components/Home/HomeHero.tsx b/src/components/Home/HomeHero.tsx index 59786bc5..d40e4cea 100644 --- a/src/components/Home/HomeHero.tsx +++ b/src/components/Home/HomeHero.tsx @@ -133,8 +133,8 @@ export const HomeHero: React.FC = ({ scrollHandler }: Props) => { // Fetch immediately fetchGlobalStats() - // Update every 20 seconds - const interval = setInterval(fetchGlobalStats, 20000) + // Update every 5 minutes + const interval = setInterval(fetchGlobalStats, 5 * 60 * 1000) return () => clearInterval(interval) }, []) @@ -149,8 +149,8 @@ export const HomeHero: React.FC = ({ scrollHandler }: Props) => { // Fetch immediately fetchActiveUsers() - // Update every 20 seconds - const interval = setInterval(fetchActiveUsers, 20000) + // Update every 5 minutes + const interval = setInterval(fetchActiveUsers, 5 * 60 * 1000) return () => clearInterval(interval) }, []) diff --git a/src/pages/api/active-users.ts b/src/pages/api/active-users.ts index 372067a7..db010a45 100644 --- a/src/pages/api/active-users.ts +++ b/src/pages/api/active-users.ts @@ -8,7 +8,7 @@ type Data = { // In-memory cache let cachedUsers: { value: number; timestamp: number } | null = null -const CACHE_DURATION = 60 * 1000 // 1 minute +const CACHE_DURATION = 5 * 60 * 1000 // 5 minutes /** * API endpoint to get active user count from PostHog diff --git a/src/pages/turing.tsx b/src/pages/turing.tsx index 7975f39d..10a23869 100644 --- a/src/pages/turing.tsx +++ b/src/pages/turing.tsx @@ -333,10 +333,4 @@ const Turing: React.FC = (props: Props) => { ) } -export const getServerSideProps = async () => { - return { - props: {}, - } -} - export default TuringPage From a2dc8d86a8418faff4eace0331067e07e76bf852 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 21 Feb 2026 23:58:09 +0000 Subject: [PATCH 2/2] Fix lint formatting in GameBoard, PlaySetupModal, and useAnalysisController https://claude.ai/code/session_01UGfnsFfXcafbYbt2TuFUVq --- src/components/Board/GameBoard.tsx | 2 +- src/components/Common/PlaySetupModal.tsx | 4 +--- src/hooks/useAnalysisController/useAnalysisController.ts | 6 +----- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/components/Board/GameBoard.tsx b/src/components/Board/GameBoard.tsx index efc59f53..9891424e 100644 --- a/src/components/Board/GameBoard.tsx +++ b/src/components/Board/GameBoard.tsx @@ -198,7 +198,7 @@ export const GameBoard: React.FC = ({ diff --git a/src/components/Common/PlaySetupModal.tsx b/src/components/Common/PlaySetupModal.tsx index acc284cb..97eae638 100644 --- a/src/components/Common/PlaySetupModal.tsx +++ b/src/components/Common/PlaySetupModal.tsx @@ -58,9 +58,7 @@ function OptionSelect({