All skills
113 of 113 — copy any prompt into Lovable, or read the guide.
301 redirects for renamed routes
Preserve link equity when you rename a URL.
Accessibility baseline
Contrast ≥ 4.5:1 for text; interactive elements need a visible focus ring.
Add a server secret
Store a third-party API key in Lovable Cloud and read it inside a server function handler.
Add installability (PWA)
Add a manifest so users can add the app to their home screen.
AI cost guardrails
Set per-user daily caps and short-circuit before calling the model.
AI eval loop
Ship a small eval set before iterating on prompts — otherwise you're guessing.
Airtable two-way sync
Read/write Airtable base as a lightweight CMS.
Alt text and lazy loading
Every meaningful image has descriptive alt; decorative images use alt="".
Append to Google Sheets
Push analytics events to a Sheet for non-tech stakeholders.
Append-only audit log table
Record who changed what and when, in a table nobody can edit or delete — including admins.
Brand the magic-link email
Replace the default auth email with your logo and copy.
BreadcrumbList schema
Show breadcrumbs on deep pages and add BreadcrumbList JSON-LD.
Build a tiny eval harness for prompts
Stop guessing whether a prompt change helped — score it against a fixed set of cases before shipping.
Cache headers
Long-cache hashed assets; short-cache HTML.
Canonical URLs
Put canonical only on leaf routes and self-reference the page.
Chat completion via Lovable AI Gateway
Call a hosted Gemini/OpenAI chat model from a server function — no API keys needed.
Choose the right model
Match model to task: Flash for cheap/fast, Pro for reasoning, image models for pixels.
CI screenshots on every PR
GitHub Action that boots the preview and screenshots key routes.
Coupons and promo codes
Let users apply a promo code at checkout.
Create a Postgres table with RLS
Prompt Lovable to create a public table with proper GRANTs and Row Level Security policies in one migration.
Create a storage bucket + upload
Ask Lovable to create a public/private bucket, RLS-style policies, and a typed upload helper.
Custom domain
Point your own domain at the Lovable app with HTTPS.
Custom domain setup (SPF, DKIM, DMARC)
DKIM + SPF + DMARC or Gmail drops you in spam.
Custom outbound webhook
Let customers register their own webhook URL and receive events.
Custom shadcn variants
Add a "premium" button variant using tokens and a gradient.
Dark mode toggle
Add a theme toggle that stores the choice and respects the OS preference.
Data backfill safely
Backfill a new column with a batched update to avoid long locks.
Design tokens in styles.css
Never hardcode colors — declare tokens and let Tailwind utilities read them.
Discord webhook
Post to a Discord channel via webhook.
Embeddings + RAG
Store document embeddings in pgvector and retrieve top-k chunks for a chat prompt.
Empty, loading and error states
The three screens that decide whether an app feels finished — and the copy that belongs on each.
Enable email + password auth
Add Lovable Cloud auth with sign-up, sign-in, and a protected route.
Enable Lovable Cloud
Turn on Lovable's built-in backend — Postgres, auth, storage, edge functions — with zero external accounts.
Enable Lovable Email
Transactional and auth email from your own domain, branded.
Enable Stripe
Connect Stripe to Lovable and store the keys as secrets.
Error monitoring
Wire an error boundary and a client error reporter before launch.
Export your database
Cloud → Advanced settings → Export data gives you a downloadable dump when you need it.
Failed payment recovery (dunning)
Recover involuntary churn with a retry schedule, in-app banners, and a hard cut-off you actually enforce.
FAQ and HowTo JSON-LD
Win expandable SERP real estate with structured data that matches the visible page content.
Generate an image
Use the AI Gateway to generate an image and save it to Cloud storage.
Generate marketing imagery
Use imagegen for hero art, avoiding stock-photo defaults.
GitHub sync
Connect the project to GitHub before you push production.
GitHub sync + branches
Connect the project to GitHub before you accept contributors.
Glassmorphism, sparingly
Glass cards work over rich backdrops; on flat surfaces they look like a bug.
Gradient utilities
Add reusable gradient-text and gradient-hero utilities.
Handle session expiry without data loss
Refresh tokens transparently, and when refresh fails, park the user's unsaved work instead of dumping it.
Hero patterns that don't look AI-generated
Skip the purple-gradient-on-white, two-CTA, three-feature-grid trap.
HubSpot contact sync
Create/update HubSpot contacts on signup.
Icons: Lucide only
Ship one icon set. Mixing icon libraries makes the UI look pasted-together.
Index the hot query paths
The first cause of slow Lovable Cloud pages is a missing index on the query's filter/order columns.
Internal linking that actually ranks
Turn a flat pile of pages into a crawlable hierarchy with hubs, descriptive anchors, and no orphans.
Invite users by email
Admin sends an invite that lets the recipient set a password.
Issue a refund
Admin-only refund with audit log.
JSON-LD structured data
Add Article schema to blog posts and Organization to the root.
Launch checklist
Ten things to verify before you tweet.
Migration authoring rules
Every CREATE TABLE in public must be followed by GRANTs before ENABLE RLS — otherwise the API returns permission errors even with policies in place.
Model fallback and graceful degradation
Keep AI features alive when a model is rate limited, over budget, or simply down.
Motion for React basics
Use Motion for enter/exit animations; keep durations short (150–250ms).
Motion tokens and reduced motion
A small, consistent set of durations and easings — that switches off cleanly for users who ask it to.
n8n workflow trigger
Fire an n8n workflow from a Lovable event.
Notion integration
Push new records into a Notion database from a server function.
One-click unsubscribe
Include List-Unsubscribe headers and a working link — required by Gmail/Yahoo.
One-click unsubscribe that keeps you out of spam
Implement List-Unsubscribe headers and a preferences page — required by major inbox providers for bulk mail.
One-time checkout
Create a Checkout Session and redirect the user.
Open Graph image
Add a 1200×630 og:image at the leaf route.
Paddle as merchant of record
Paddle handles global tax for you — trade lower control for zero tax paperwork.
Password reset flow
Forgot-password → email → new-password page.
Passwordless magic link
Send a one-click sign-in link via email.
Per-route head() metadata
Every route sets its own title, description, og:title, og:description via head().
Performance budget
Set a budget and enforce it in CI or it will slip.
Pre-publish preflight in five minutes
A short, mechanical checklist that catches the errors that actually reach production.
Preview email deliverability
Use mail-tester.com before you press send at scale.
Programmatic SEO safely
Every generated page needs ≥300 words of unique content or Google will penalize the domain.
Prompt-injection and safety
Treat all model output and all retrieved content as untrusted input.
Protected route pattern
Use the built-in _authenticated/ layout — never gate in a loader on a public route.
Publish visibility settings
Public, unlisted, or password-gated — pick per environment.
Publish your app
Click Publish in the top-right; your app goes live at <name>.lovable.app.
Realtime subscriptions
Subscribe to Postgres change events and re-render a list live.
Responsive breakpoints
Design mobile-first; add breakpoints only where the layout actually changes.
Reusable templates
Author templates in one place, render with typed props.
robots.txt sanity
A wildcard Disallow: / blocks the whole site — probably not what you want.
Rollback strategy
Publish is instant — so is reverting.
Run a scheduled job with pg_cron
Schedule a daily cleanup via pg_cron hitting a public API route.
Semrush keyword research
Pull top keywords for a domain and store them.
Send a transactional email
Server function to send a receipt with dynamic data.
Server-side role check
Verify a caller is admin inside a server function.
Shopify products feed
Sync Shopify products into your app.
Sign in with Apple
Add managed Apple OAuth.
Sign in with Google
Add managed Google OAuth in one step.
Sign out cleanly
Sign out and clear all cached user data.
sitemap.xml
Ship a sitemap listing every public route.
Slack notifications
Post to a Slack channel via incoming webhook.
Soft delete with restore window
Prompt Lovable to add a deleted_at column, filter it everywhere, and give users a 30-day restore window.
Speech-to-text
Accept an audio blob and return a transcript with word timestamps.
Stable preview & prod URLs
Use project--<id>.lovable.app for webhooks — it never changes on rename.
Stream a chat response
Stream tokens to the browser using a server route + Web Streams.
Stripe Customer Portal
Let users manage their subscription in Stripe's hosted portal.
Stripe Tax
Turn on automatic tax so you stop calculating VAT/GST/sales tax by hand.
Stripe webhook the safe way
Verify the signature, use the raw body, respond fast, be idempotent.
Structured JSON output
Force the model to return typed JSON matching a Zod schema.
Subscription checkout
Stripe subscription with trial and metadata.
Subscription upgrade / downgrade
Prorate on plan change: immediate for upgrades, end-of-period for downgrades.
Text-to-speech
Generate an MP3 from text and stream it back to the client.
Title and description length
Title <60 chars with the primary keyword; description <160 chars.
Tool / function calling
Give the model tools it can call and route them to your server functions.
Twitter cards
summary_large_image for content pages; verify with Twitter's card validator.
Typography pairing
One display face + one text face is almost always enough.
User roles the safe way
Never store role on the profile table. Use a dedicated user_roles table + has_role() SECURITY DEFINER function to prevent privilege escalation.
useSession() hook
One hook that returns the current user + loading state everywhere.
Verify and process an inbound webhook
The exact shape of a safe public webhook endpoint: verify first, respond fast, process idempotently.
Verify DKIM in production
Send yourself an email and check headers before a launch.
When to use an Edge Function vs a server function
Edge Functions are for webhooks, cron, and public HTTP endpoints. For app-internal RPC use TanStack server functions instead.
Zapier trigger
Expose a Zapier polling endpoint or webhook trigger.