Integration skill for Lovable.dev projects...
For initialization or reinitialization, use ../init/SKILL.md. Before submitting any Lovable
prompt, apply prompt authorization: YOLO on grants standing
authorization; generic confirmation rules apply when YOLO is off.
Apply credit efficiency before interacting with Lovable. Perform all possible work locally, use browser Cloud pages rather than MCP/chat to inspect backend state, and consolidate indispensable hosted operations into one minimal prompt.
This skill enables Claude Code to work effectively with Lovable.dev projects while respecting Lovable's deployment requirements.
Activate when:
supabase/ directory with Edge FunctionsLovable supports two architectures. Always detect which one you're working with before giving advice.
Check the root directory of the user's project:
app.config.ts present ā TanStack Start (new, SSR ā post-April 2026)vite.config.ts present ā Vite SPA (legacy, CSR ā pre-April 2026)Both are fully supported. Old projects remain on Vite and receive no forced migration.
Projects created before April 2026. Client-side rendering only.
ā
Edit freely and push to main:
src/ - All React components, pages, hooks, utilspublic/ - Static assetsvite.config.ts, tailwind.config.js, tsconfig.jsonpackage.json - Dependenciessupabase/functions/*/index.ts - Edge Function code (not deployment)supabase/migrations/*.sql - Migration files (not application)ā ļø After editing, provide Lovable prompt:
| Change Type | Lovable Prompt |
|---|---|
| Edge Function code | "Deploy the [name] edge function" |
| All Edge Functions | "Deploy all edge functions" |
| New migration file | "Apply pending Supabase migrations" |
| New table needed | "Create a [name] table with columns: [list]" |
| RLS policy | "Enable RLS on [table] allowing [who] to [what]" |
| Storage bucket | "Create a [public/private] bucket called [name]" |
| Secret/env var | Manual: Cloud ā Secrets ā Add |
Projects created after April 2026. Full server-side rendering (SSR) via TanStack Start.
app/routes/ (not React Router in src/App.tsx)app.config.ts (not vite.config.ts)createServerFn) let server-side logic live directly in component files ā no edge function needed for simple server logic*.server.ts are server-only and never sent to the browserā
Edit freely and push to main:
app/ - All routes, components, server functions, layoutsapp/routes/ - File-based route pagespublic/ - Static assetsapp.config.ts, tailwind.config.js, tsconfig.json - Config filespackage.json - Dependenciesapp/**/*.server.ts - TanStack server functions (auto-deploys, no Lovable prompt needed)supabase/functions/*/index.ts - Supabase Edge Function code (not deployment)supabase/migrations/*.sql - Migration files (not application)ā ļø After editing, provide Lovable prompt:
| Change Type | Lovable Prompt |
|---|---|
| Supabase Edge Function code | "Deploy the [name] edge function" |
| All Supabase Edge Functions | "Deploy all edge functions" |
| New migration file | "Apply pending Supabase migrations" |
| New table needed | "Create a [name] table with columns: [list]" |
| RLS policy | "Enable RLS on [table] allowing [who] to [what]" |
| Storage bucket | "Create a [public/private] bucket called [name]" |
| Secret/env var | Manual: Cloud ā Secrets ā Add |
Note: TanStack server functions (
createServerFn) are not Supabase Edge Functions. They live inapp/and deploy automatically via GitHub sync ā no Lovable prompt needed. Onlysupabase/functions/requires manual deployment.
project/
āāā app/ # ā
Safe - auto-syncs
ā āāā routes/ # File-based routing
ā ā āāā __root.tsx # Root layout
ā ā āāā index.tsx # Home page (/)
ā ā āāā [route].tsx # Other pages
ā āāā components/ # Shared UI components
ā āāā lib/ # Utilities and helpers
ā āāā *.server.ts # ā
Server functions (auto-deploy)
āāā app.config.ts # TanStack Start config
āāā public/ # Static assets
āāā supabase/
ā āāā functions/ # ā
Edit code, ā ļø needs deploy
ā āāā migrations/ # ā
Create files, ā ļø needs apply
āāā CLAUDE.md # Project context
Lovable uses two-way GitHub sync on the main branch only:
When backend deployment is needed, always output:
š **LOVABLE PROMPT:**
> "[exact prompt to copy-paste]"
For destructive operations, add:
ā ļø **Warning**: [explanation of risk]
vite.config.ts present)project/
āāā src/ # ā
Safe - auto-syncs
ā āāā components/
ā āāā pages/
ā āāā hooks/
ā āāā lib/
ā āāā integrations/supabase/
ā āāā client.ts # ā ļø Has Supabase URLs
ā āāā types.ts
āāā supabase/
ā āāā functions/ # ā
Edit code, ā ļø needs deploy
ā ā āāā [function-name]/
ā ā āāā index.ts
ā āāā migrations/ # ā
Create files, ā ļø needs apply
ā ā āāā YYYYMMDDHHMMSS_*.sql
ā āāā config.toml # ā ļø Lovable Cloud manages
āāā .env # Local only - Lovable ignores
āāā CLAUDE.md # Project context
app.config.ts present)project/
āāā app/ # ā
Safe - auto-syncs
ā āāā routes/ # File-based routing
ā ā āāā __root.tsx # Root layout
ā ā āāā index.tsx # Home route (/)
ā ā āāā [name].tsx # Named routes
ā āāā components/ # Shared components
ā āāā lib/ # Utilities
ā āāā integrations/supabase/ # Supabase client + types
ā āāā *.server.ts # ā
Server functions (auto-deploy, no prompt needed)
āāā app.config.ts # TanStack Start config
āāā public/ # Static assets
āāā supabase/
ā āāā functions/ # ā
Edit code, ā ļø needs deploy via Lovable
ā ā āāā [function-name]/
ā ā āāā index.ts
ā āāā migrations/ # ā
Create files, ā ļø needs apply via Lovable
ā ā āāā YYYYMMDDHHMMSS_*.sql
ā āāā config.toml # ā ļø Lovable Cloud manages
āāā .env # Local only - Lovable ignores
āāā CLAUDE.md # Project context
supabase functions deploy"Deploy all edge functions"
"Deploy the send-email edge function"
"Create an edge function called [name] that [description]"
"Show logs for [name] edge function"
"The [name] edge function returns [error]. Fix it"
"Create a [name] table with columns: id (uuid), name (text), created_at (timestamp)"
"Add a [column] column of type [type] to [table]"
"Add foreign key from [table1].[col] to [table2].id"
"Apply pending Supabase migrations"
"Enable RLS on [table]"
"Add RLS policy on [table] allowing authenticated users to read all rows"
"Add RLS policy on [table] allowing users to only access their own rows"
"Create a public storage bucket called [name]"
"Create a private storage bucket called [name]"
"Allow authenticated users to upload to [bucket]"
"Enable Google authentication"
"Enable GitHub authentication"
"When user signs up, create row in profiles table"
main syncs with LovableWhen yolo_mode: on in CLAUDE.md, deployments are automated via browser automation:
Instead of showing manual prompts, the yolo skill (/skills/yolo/SKILL.md) takes over:
/lovable:deploy-edge command/lovable:apply-migration commandyolo_mode: on in CLAUDE.md/lovable:yolo on # Enable with testing
/lovable:yolo on --no-testing # Enable without testing
/lovable:yolo on --debug # Enable with verbose logs
/lovable:yolo off # Disable
ā ļø Yolo mode is in beta:
/skills/yolo/SKILL.md for detailsFrontend not updating?
main branch?Edge Function not working?
Database query failing?
Yolo mode not working?
yolo_mode: on in CLAUDE.md