3s to 300ms: Next.js Performance Optimization — Real Case with Metrics