VITE_API_URL was never set in the Nix build, so getBaseURL() returned empty string causing all API calls to hit the current origin (e.g. hackathon.imphnen.dev) instead of api.imphnen.dev. This caused 405 errors on login since the frontend server doesn't handle POST. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>