From app-dev
Create a new Supabase project with full auth setup (Email, Google, Apple SIWA)
npx claudepluginhub willsigmon/sigstack --plugin app-devThis skill uses the workspace's default tool permissions.
Automate the creation of a new Supabase project with complete authentication setup.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Automate the creation of a new Supabase project with complete authentication setup.
Credentials are stored in MCP memory:
GoogleOAuthCredentials entityAppleSIWACredentials entitySupabaseOrgInfo entityAsk the user for:
Use mcp__supabase__get_cost with:
- type: "project"
- organization_id: "cqwwexcenmknepxltuea"
Then use mcp__supabase__confirm_cost with:
- type: "project"
- recurrence: "monthly"
- amount: (from get_cost result)
Use mcp__supabase__create_project with:
- name: <project_name>
- organization_id: "cqwwexcenmknepxltuea"
- region: <chosen_region>
- confirm_cost_id: <from step 2>
Wait for project to be ACTIVE_HEALTHY (poll with get_project).
-- Enable extensions
create extension if not exists "uuid-ossp";
-- Profiles table
create table public.profiles (
id uuid references auth.users on delete cascade primary key,
email text,
full_name text,
avatar_url text,
provider text,
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null
);
-- Enable RLS
alter table public.profiles enable row level security;
-- Policies
create policy "Users can view own profile"
on public.profiles for select using (auth.uid() = id);
create policy "Users can update own profile"
on public.profiles for update using (auth.uid() = id);
create policy "Users can insert own profile"
on public.profiles for insert with check (auth.uid() = id);
-- Auto-create profile on signup
create or replace function public.handle_new_user()
returns trigger language plpgsql security definer set search_path = ''
as $$
begin
insert into public.profiles (id, email, full_name, avatar_url, provider)
values (
new.id,
new.email,
coalesce(new.raw_user_meta_data->>'full_name', new.raw_user_meta_data->>'name'),
coalesce(new.raw_user_meta_data->>'avatar_url', new.raw_user_meta_data->>'picture'),
coalesce(new.raw_app_meta_data->>'provider', 'email')
);
return new;
end;
$$;
create or replace trigger on_auth_user_created
after insert on auth.users
for each row execute procedure public.handle_new_user();
-- Updated_at trigger
create or replace function public.update_updated_at()
returns trigger language plpgsql security invoker set search_path = ''
as $$
begin
new.updated_at = now();
return new;
end;
$$;
create trigger profiles_updated_at
before update on public.profiles
for each row execute procedure public.update_updated_at();
Use mcp__supabase__get_project_url
Use mcp__supabase__get_publishable_keys
Provide the user with:
## Project Created: <name>
**Supabase URL:** https://<project_ref>.supabase.co
**Anon Key:** <key>
**Dashboard:** https://supabase.com/dashboard/project/<project_ref>
### Callback URL (add to Google & Apple):
https://<project_ref>.supabase.co/auth/v1/callback
### Manual Steps Required:
1. **Add callback URL to Google OAuth:**
- Go to: https://console.cloud.google.com/apis/credentials
- Edit "Supabase Auth" OAuth client
- Add redirect URI: https://<project_ref>.supabase.co/auth/v1/callback
2. **Add callback URL to Apple SIWA:**
- Go to: https://developer.apple.com/account/resources/identifiers/list/serviceId
- Edit "Leavn Web Auth" (com.leavn.web)
- Add domain: <project_ref>.supabase.co
- Add return URL: https://<project_ref>.supabase.co/auth/v1/callback
3. **Configure Auth Providers in Supabase:**
- Go to: https://supabase.com/dashboard/project/<project_ref>/auth/providers
**Google:**
- Client ID: 266992035640-0oegr8f1q49ub97si4s3c73al036mbvg.apps.googleusercontent.com
- Client Secret: (retrieve from MCP memory: GoogleOAuthCredentials)
**Apple:**
- Service ID: com.leavn.web
- Team ID: 49HAGQE8FB
- Key ID: M652AAWJXF
- Private Key: (retrieve from MCP memory: ApplePrivateKey)
Use mcp__supabase__get_advisors with:
- project_id: <new_project_id>
- type: "security"
Fix any warnings found.
266992035640-0oegr8f1q49ub97si4s3c73al036mbvg.apps.googleusercontent.commcp__memory__open_nodes with name GoogleOAuthCredentialscom.leavn.web49HAGQE8FBM652AAWJXFmcp__memory__open_nodes with name ApplePrivateKeycqwwexcenmknepxltueaus-east-1