Fixes tagged Supabase

7 fixes · back to all fixes

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.

2 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

Use signed URLs, never public storage URLs

A public Supabase bucket is the quick way to show user uploads, and a permanent data leak. Private bucket, owner-scoped policies, and short-lived signed URLs give you the same convenience without handing out forever-links.

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 →