v0.1.78 — 11 Jun 2026
Bug Fix — Added SUPABASE_INTERNAL_URL support for server-side Supabase connections
Who is affected: Operators running BuildPad in Docker/Kubernetes or private network topologies where app servers should reach Supabase over an internal hostname instead of the public endpoint.
What was wrong
Server-side code paths (API routes, middleware, session helpers, and auth
flows) always used NEXT_PUBLIC_SUPABASE_URL, which is browser-facing and may
route through a public load balancer.
What changed
SUPABASE_INTERNAL_URL is now supported as a server-only override across
server-side Supabase and auth paths. When set, server code uses the internal
URL; when absent, behavior falls back to NEXT_PUBLIC_SUPABASE_URL.
Before / After
| Scenario | Before this fix | After this fix |
|---|---|---|
| API route / middleware Supabase target | ❌ Always public URL | ✅ Uses SUPABASE_INTERNAL_URL when configured |
| Browser Supabase target | ✅ Public URL | ✅ Still public URL |
| Self-hosted internal network optimization | ❌ Not possible without code changes | ✅ Supported via env config |
Bug Fix — Docs site hard reload no longer breaks due to early widget script execution
Who is affected: Users browsing the docs site who encountered broken hard reload behavior while menu navigation still worked.
What was wrong
The feedback widget script could execute before hydration and mutate the DOM that React expected, causing hard reload instability.
What changed
The widget script loading strategy was changed from beforeInteractive to
lazyOnload, so script execution happens after hydration.