🧠 Second Brain
💡

Lesson: PUBLIC_ env vars not in SvelteKit server code

P3 - Low
Lesson Second Brain

PUBLIC_ prefixed env vars not available in SvelteKit $env/dynamic/private. Use non-prefixed vars for server code.

## Problem
Second Brain API was returning 500 errors in production with "supabaseUrl is required"

## Root Cause
SvelteKit server code was trying to access `env.PUBLIC_SUPABASE_URL` from `$env/dynamic/private`.

In SvelteKit:
- `PUBLIC_` prefixed vars → only in `$env/dynamic/public` or `$env/static/public`
- `$env/dynamic/private` → only non-PUBLIC vars

## Fix
1. Added `SUPABASE_URL=https://...` to .env (without PUBLIC_ prefix)
2. Updated all server files to use `env.SUPABASE_URL` instead of `env.PUBLIC_SUPABASE_URL`
3. Added SUPABASE_URL to Vercel environment variables

## Files Changed
- src/lib/server/auth.ts
- src/lib/server/embeddings.ts
- src/routes/api/*/+server.ts (all API routes)

## Commit
080b629

Created: Sun, Feb 15, 2026, 1:49 AM by bob

Updated: Sun, Feb 15, 2026, 1:49 AM

Last accessed: Sun, Feb 15, 2026, 1:49 AM

ID: 47891a0a-ff50-4493-8160-91957861d905