Install any skill in seconds. Free to start, no credit card required.
Get Started Free →velcrafting/supabase-expert
This skill should be used when the user asks to "create a Supabase table", "write RLS policies", "set up Supabase Auth", "create Edge Functions", "configure Storage buckets", "use Supabase with Next.js", "migrate API keys", "implement row-level security", "create database functions", "set up SSR auth", or mentions 'Supabase', 'RLS', 'Edge Function', 'Storage bucket', 'anon key', 'service role', 'publishable key', 'secret key'. Automatically triggers when user mentions 'database', 'table', 'SQL',
Passed 22 of 22 test cases with the skill, and 12 of 22 without it.
and 9 more in the full report
10 fixed12 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
Provide the client-side initialization function for Supabase in a Next.js browser component. Which API key variable should be passed to createBrowserClient?
| Checked | Without skill | With skill |
|---|---|---|
| The client initialization references NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY. | Missed | Passed |
The instructions your model reads when the skill loads.
Comprehensive guidance for working with Supabase including database operations, authentication, storage, edge functions, and Next.js integration. Enforces security patterns, performance optimizations, and modern best practices.
Supabase now offers two key types with improved security:
| Key Type | Prefix | Safety | Use Case |
|---|---|---|---|
| Publishable | sb_publishable_... | Safe for client | Browser, mobile, CLI |
| Secret | sb_secret_... | Backend only | Servers, Edge Functions |
| Legacy anon | JWT-based | Safe for client | Being deprecated |
| Legacy service_role | JWT-based | Backend only | Being deprecated |
Key Rules:
See references/api-keys.md for migration guide and security practices.
NEVER USE (DEPRECATED):
get(), set(), remove()@supabase/auth-helpers-nextjsALWAYS USE:
@supabase/ssrgetAll() and setAll() ONLYgetUser() to refresh sessionsupabaseResponse objectImportant: As of Next.js 16+, use
proxy.tsinstead ofmiddleware.ts. See https://nextjs.org/docs/app/api-reference/file-conventions/proxy
test cases passed, vs 12 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.