swiftship/internal/skills/data/features/supabase/SKILL.md
Supabase Swift SDK patterns for auth, database, and storage. Use when implementing app features related to supabase.
npx skillsauth add abdullah4ai/apple-developer-toolkit supabaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You MUST set up the Supabase backend BEFORE writing any Swift code. Follow this exact order:
mcp__supabase__execute_sql — columns, types, foreign keys, constraints, indexesALTER TABLE ... ENABLE ROW LEVEL SECURITYstorage.objectsupdated_at, denormalized counters, etc.mcp__supabase__list_tables and mcp__supabase__list_storage_bucketsmcp__supabase__get_auth_config to confirm providers are enabled (auto-configured by nanowave)Config/AppConfig.swift — Supabase URL + anon keySupabaseService.swift — shared clientCodable + CodingKeys matching the table columns you just createdNEVER skip Phase 1. If you write Swift code that references tables that don't exist, the app will crash at runtime.
Initialize SupabaseClient once in a shared service. Use PKCE auth flow (default for mobile).
import Supabase
@Observable
final class SupabaseService {
static let shared = SupabaseService()
let client: SupabaseClient
private init() {
client = SupabaseClient(
supabaseURL: URL(string: AppConfig.supabaseURL)!,
supabaseKey: AppConfig.supabaseAnonKey
)
}
}
Store Supabase credentials as static constants — injected by nanowave during build.
enum AppConfig {
static let supabaseURL = "https://PROJECT_REF.supabase.co"
static let supabaseAnonKey = "YOUR_ANON_KEY"
}
authentication skill (AuthService, guards, modes) — this skill covers only the Supabase auth API callsrepositories skill — this skill covers Supabase API patterns used inside concrete repository implementationsmcp__supabase__get_auth_config to verify, use mcp__supabase__configure_auth_providers only if manual adjustment is neededmcp__supabase__execute_sql — run SQL queries (SELECT, DML)mcp__supabase__list_tables — list tables in schemasmcp__supabase__apply_migration — track DDL as versioned migrationsmcp__supabase__list_storage_buckets — list storage bucketsmcp__supabase__get_project_url — get project URL for Swift clientmcp__supabase__get_anon_key — get anon key for Swift clientmcp__supabase__get_logs — query project logsmcp__supabase__configure_auth_providers — enable/disable auth providers (apple, google, email, phone, anonymous)mcp__supabase__get_auth_config — check current auth provider configurationmcp__supabase__set_secrets — set edge function environment variables (name/value pairs)mcp__supabase__list_secrets — list all project secretsmcp__supabase__delete_secrets — delete secrets by nametools
Apple platform skill for docs, WWDC lookup, App Store Connect work, and SwiftUI app generation. Use repo-local `node cli.js` for Apple docs and WWDC search, `appledev store` for App Store Connect workflows, and `appledev build` for app scaffolding or fix loops on macOS. USE WHEN: Apple APIs, WWDC sessions, TestFlight/App Store tasks, or building/fixing Apple-platform apps. DON'T USE WHEN: non-Apple platforms, generic backend work, or general web research. EDGE CASES: docs-only queries use `node cli.js` in this repo, not `appledev`; release workflows use `appledev store`; app scaffolding uses `appledev build`; rules-only requests can read `references/ios-rules/` or `references/swiftui-guides/` progressively without invoking binaries.
tools
All-in-one Apple developer skill with three integrated tools shipped as a single unified binary. (1) Documentation search across Apple frameworks, symbols, and 1,267 WWDC sessions from 2014-2025. No credentials needed. (2) App Store Connect CLI with 120+ commands covering builds (find/wait/upload), TestFlight, pre-submission validate, submissions, signing, subscriptions (family-sharable), IAP, analytics, Xcode Cloud, metadata workflows, release pipeline dashboard, insights, win-back offers, promoted purchases, product pages, nominations, accessibility declarations, pre-orders, pricing filters, localizations update, diff, webhooks with local receiver, workflow automation, and more. Requires App Store Connect API key. (3) Multi-platform app builder (iOS/watchOS/tvOS/iPad/macOS/visionOS) that generates complete Swift/SwiftUI apps from natural language with auto-fix, simulator launch, interactive chat mode, and open-in-Xcode. Requires an LLM API key and Xcode. Includes 38 iOS development rules and 12 SwiftUI best practice guides for Liquid Glass, navigation, state management, and modern APIs. All three tools ship as one binary (appledev). USE WHEN: Apple API docs, App Store Connect management, WWDC lookup, or building iOS/watchOS/tvOS/macOS/visionOS apps from scratch. DON'T USE WHEN: non-Apple platforms or general coding.
testing
watchOS complications: WidgetKit complication families, accessory sizes, timeline providers for watch face. Use when implementing watchOS-specific patterns related to widgets.
development
watchOS haptic feedback: WKInterfaceDevice preset haptic types for wrist-based feedback. Use when implementing watchOS-specific patterns related to haptics.