From maycrest-automate
PostgreSQL/Supabase database design, schema setup, RLS policies, performance optimization, pricing, and per-project setup assistance for Corey's projects (Maycrest Group, TIE Platform, client apps). Trigger for "design the database", "set up schema", "create tables", "write RLS policies", "optimize queries", "database slow", "which Supabase plan", "how much will this cost", "database pricing", "set up database for [project]", "migration", "indexing strategy", "database architecture", "multi-tenant schema", "RBAC tables", "pgTAP tests", "connection pooling", "database performance", "schema review", "ERD", "data model".
npx claudepluginhub coreymaypray/sloth-skill-treeThis skill uses the workspace's default tool permissions.
PostgreSQL/Supabase database design, schema setup, RLS policies, performance optimization, and pricing guidance for Corey's projects.
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.
PostgreSQL/Supabase database design, schema setup, RLS policies, performance optimization, and pricing guidance for Corey's projects.
gen_random_uuid() as defaultcreated_at, updated_at with triggersdeleted_at timestamp, never hard delete in application layerCREATE TABLE public.table_name (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
-- columns here
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ
);
-- Auto-update timestamp
CREATE TRIGGER set_updated_at
BEFORE UPDATE ON public.table_name
FOR EACH ROW EXECUTE FUNCTION public.handle_updated_at();
-- RLS
ALTER TABLE public.table_name ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Users can view own data"
ON public.table_name FOR SELECT
USING (auth.uid() = user_id);
CREATE POLICY "Members can view org data"
ON public.table_name FOR SELECT
USING (
org_id IN (
SELECT org_id FROM public.org_members
WHERE user_id = auth.uid()
)
);
CREATE POLICY "Admins can update"
ON public.table_name FOR UPDATE
USING (
EXISTS (
SELECT 1 FROM public.org_members
WHERE user_id = auth.uid()
AND org_id = table_name.org_id
AND role IN ('admin', 'owner')
)
);
organizations — Tenant containerorg_members — User-to-org mapping with rolesorg_invitations — Pending invitesorg_settings — Per-tenant configurationowner — Full access, billing, can delete orgadmin — Manage members, settings, all datamember — Standard access to org dataviewer — Read-only accessEXPLAIN ANALYZE before and afterselect('*, relation(*)')| Plan | Monthly | Best For |
|---|---|---|
| Free | $0 | Prototyping, demos |
| Pro | $25 | Client apps, small SaaS |
| Team | $599 | Multi-tenant, TIE Platform |
| Enterprise | Custom | Large-scale deployments |