Fixes tagged Supabase

8 fixes · back to all fixes

SupabasePostgres

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 →

SupabaseGitHub Actions

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 →

SupabaseRealtime

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 →

SupabaseSecurity

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 →

SupabaseGDPR

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 →

SupabasePostgres

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 →

StripeRevenueCat

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 →

StripeGelato

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 →