Agent skill · software engineering · aiskillstore

supabase

Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector).

Why this skill is useful

Adds detailed security guidelines, specific API usage patterns, and error recovery strategies for Supabase that are not commonly found in public documentation.

What it needs

Requires supabase-cli installed locally. Requires supabase account access. About 4k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.

What this skill does

Supabase Core Principles 1. Supabase changes frequently — verify against current docs before implementing. Do not rely on training data for Supabase features. Function signatures, config.toml settings, and API conventions change between versions. Before implementing, look up the relevant topic using the documentation access methods below. 2. Verify your work. After implementing any fix, run a test query to confirm the change works. A fix without verification is incomplete. 3. Recover from errors, don't loop. If an approach fails after 2-3 attempts, stop and reconsider. Try a different method, check documentation, inspect the error more carefully, and review relevant logs when available. Supabase issues are not always solved by retrying the same command, and the answer is not always in the logs, but logs are often worth checking before proceeding. 4. RLS by default in exposed schemas. Enable RLS on every table in any exposed schema, especially public. This is critical in Supabase because tables in exposed schemas can be reachable through the Data API. For private schemas, prefer RLS as defense in depth. After enabling RLS, create policies that match the actual access model rather than defaulting every table to the same auth.uid() pattern. 5. Security checklist. When working on any Supabase task that touches auth, RLS, views, storage, or user data, run through this checklist. These are Supabase-specific security traps that silently create vulnerabilities: Auth and session security Never use usermetadata claims in JWT-based authorization decisions. In Supabase, rawusermetadata is user-editable and can appear in auth.jwt(), so it is unsafe for RLS policies or any other authorization logic. Store authorization data in rawappmetadata / appmetadata instead. Deleting a user does not invalidate existing access tokens. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills aiskillstore/supabase--147e51

View the source on GitHub

Browse the @skills marketplace