Fixes tagged Supabase
8 fixes · back to all fixes
The keepalive returned 200 every day and the database paused anyway
A daily cron pinged Supabase, got a 200 every single run, and the free-tier project still went to sleep twice. The endpoint was answered by the gateway and never reached Postgres, so the inactivity scan counted nothing. Here is the ping that actually executes SQL.
4 min read →
The Supabase free-tier keepalive that actually works
A free-tier Supabase project pauses after a week idle, and the obvious keepalive cron still let it sleep. The reason: the request was getting a 401 at the gateway. Here is the endpoint that returns 200 with the anon key.
3 min read →
Supabase Realtime breaks on remount unless the channel is unique
A Realtime subscription works once, then throws or goes silent when the component remounts. The cause is two subscriptions fighting over the same channel name. Clean up on unmount, and make the name unique per mount.
1 min read →
Supabase signed URL vs public URL: keep the storage bucket private
getPublicUrl on a public bucket hands a permanent, unauthenticated link to anyone who sees it once. Keep the bucket private, scope the storage policy to auth.uid(), and serve files with createSignedUrl links that expire: 900 seconds in the app, 3600 for a deliberate share.
2 min read →
Account deletion that satisfies the app stores (and GDPR)
Apple and Google require in-app account deletion. The traps are the order you delete in and trusting a client-supplied id. Here's the Supabase version that doesn't orphan storage or delete the wrong user.
2 min read →
Rate limiting in Postgres, no Redis
You don't need Redis or a third-party service to rate-limit a Supabase app. One table, one atomic upsert, and a security-definer function keyed to the user. Race-safe and impossible to bypass.
2 min read →
One subscription across web and mobile (Stripe + RevenueCat + Supabase)
Pay on web or mobile, unlock both, never double-charge, by making one Supabase column the source of truth instead of reconciling two billing systems.
3 min read →
Stripe + Gelato print-on-demand, end to end
Let users buy a real printed poster of what they made: render at print resolution, host it, charge with Stripe, and create the Gelato order from the webhook, not the browser.
3 min read →