supabase-nextjs

Next.js with Supabase and Drizzle ORM

By alinaqi · 711 installs

npx skills add alinaqi/maggy --skill supabase-nextjs

Source repository · Upstream listing

Supabase + Next.js Skill Next.js App Router patterns with Supabase Auth and Drizzle ORM. Sources: [Supabase Next.js Guide](https://supabase.com/docs/guides/auth/server side/nextjs) [Drizzle + Supabase](https://supabase.com/docs/guides/database/drizzle) Core Principle Drizzle for queries, Supabase for auth/storage, server components by default. Use Drizzle ORM for type safe database access. Use Supabase client for auth, storage, and realtime. Prefer server components; use client components only when needed. Project Structure Setup Install Dependencies Environment Variables Drizzle Setup drizzle.config.ts src/db/index.ts src/db/schema.ts Supabase Clients src/lib/supabase/client.ts (Browser) src/lib/supabase/server.ts (Server Components/Actions) src/lib/supabase/middleware.ts (For Middleware) Middleware src/middleware.ts Auth Helpers src/lib/auth.ts Auth Pages src/app/(auth)/login/page.tsx src/components/auth/login form.tsx src/app/(auth)/callback/route.ts Server Actions src/app/actions/posts.ts Data Fetching src/db/queries/posts.ts In Server Components Storage Upload Component Get Public URL Realtime Client Component with Subscription OAuth Providers src/components/auth/oauth buttons.tsx Sign Out Server Action Sign Out Button Anti Patterns Using Supabase client for DB queries Use Drizzle for type safety Fetching in client components Prefer server components Not using middleware for auth Session refresh is critical Calling cookies() synchronously Must await in Next.js 15+ Service key in client Never expose, server only Missing revalidatePath Always revalidate after mutations Not handling auth errors Show user friendly messages