01Writing · Tag

Articles tagged "supabase".

At a glance
Articles
11
Published
Mar→Jul 2026
Reading time
111 min
In series
3

Articles tagged supabase

11 articles

40 min lovablesupabasevercel

How I migrated a live app off Lovable onto my own Supabase and Vercel: the full runbook

Step-by-step runbook to move a live app from Lovable to your own Supabase and Vercel, with rollback gates, real incidents, and fixes.

Supabase Production Hardening 8/8

A routine Supabase branch merge deleted the entire dev environment, permanently.

7 min supabasesupabase-vaultpostgres

How to encrypt API keys and client secrets in Supabase

Store client secrets in Supabase Vault, keep searchable metadata in Postgres, and gate every decrypt behind one checked SECURITY DEFINER function. Step-by-step SQL with the gotchas.

Supabase Production Hardening 7/8

A leaked backup or one overbroad rule, and your clients’ passwords are plain text.

7 min chrome-extensionmanifest-v3supabase

How to build a Chrome extension popup with Supabase Auth (step by step)

Wire Supabase Auth into an MV3 popup: bundle the UMD, persist sessions in chrome.storage, recover state on reopen. Working code included.

Chrome Extension Lifecycle 2/3

Every time the Chrome popup closes, your user is logged out again.

7 min supabasesupabase-authsupabase-publishable-key

Migrating to Supabase publishable keys broke my Chrome extension. Here is the fix.

sb_publishable_* keys return 401 from hand-rolled fetch. Migration to @supabase/supabase-js plus a chrome.storage.local session adapter for Manifest V3. 158 lines of HTTP became 67.

Claude Code Engineering 7/9

They sign in, close the popup, and thirty seconds later they are logged out again.

9 min lovablelovable-securitysupabase

How to audit a Lovable app after the BOLA disclosure: a 6-hour rotation playbook

Audit a Lovable app after the BOLA disclosure: exposure checks, Supabase key rotation, Chrome extension SDK migration, and pre-revoke verification.

Claude Code Engineering 6/9

Five API calls from a free Lovable account read your database credentials and your API keys.

7 min supabasesupabase-realtimesecurity

Realtime broadcast scope is a security boundary, not a routing convenience

Default-public Realtime broadcasts leak message bodies to every subscriber. The private-channel flag plus RLS is the fix.

Supabase Production Hardening 6/8

Anyone who opens DevTools can subscribe to your Supabase channel and read every message.

6 min securitysupabaseauth-jwt

User enumeration via password reset: the bug in default forgot-password flows

Most forgot-password endpoints leak whether an email exists. Fix: return the same response always, regardless of account status.

Supabase Production Hardening 5/8

Your forgot-password form will tell a stranger which of your customers have accounts.

7 min securitysupabaseedge-functions

Origin validation in edge functions: the open redirect you ship by default

Edge functions that trust the Origin or Referer header for redirect URLs are open-redirect vulnerable. One allowlist helper closes the gap.

Supabase Production Hardening 4/8

Your own domain hands the user to the attacker’s copy of your login page.

8 min postgressupabasepostgres-triggers

How to build a tamper-evident audit log in Postgres with one trigger

Build an audit log table, attach a SECURITY DEFINER trigger that captures every UPDATE and DELETE, lock it down with RLS. Forty lines of SQL.

Supabase Production Hardening 3/8

I never made that change.

6 min supabasepostgrestpostgres

How a Postgres constraint rename silently broke production via PostgREST

PostgREST resolves onConflict against real constraint names at runtime. Rename a constraint and the upsert silently fails with a 400 nobody notices.

Supabase Production Hardening 2/8

The migration ran clean on Tuesday. On Thursday nobody could invite anyone.

7 min supabasesupabase-authpostgres

Two-layer identity models in Supabase: when auth and authorization disagree

Supabase Auth creates identities, not roles. Use a user_roles table, RLS policies, and one trigger migration so signups never strand users without permissions.

Supabase Production Hardening 1/8

The user did something weird.

02Narrow it down

03Read in order

3 series run through this tag.