lovable-cleanup
Remove every trace of Lovable scaffolding and ship the project as your own. Made with antigravity-awesome-skills · author: whoisabhishekadhikari
Overview
Lovable (lovable.dev) bootstraps Vite + React + shadcn/ui projects with its own tagger dependency, branding, placeholder assets, and generated markdown docs baked in. Most developers export from Lovable and want a clean, ownable codebase before shipping or open-sourcing. This skill covers all 14 areas where Lovable leaves fingerprints.
When to Use This Skill
- User says "clean up my Lovable project" or "remove Lovable branding"
- User says "de-Lovable", "I exported from Lovable", or "audit for Lovable leftovers"
- Project contains
lovable-taggerinpackage.json - Project contains
CLEANUP_SUMMARY.md,DEPLOYMENT_GUIDE.md, orDEVELOPMENT_SUMMARY.md index.htmlstill has a generic<title>or Lovable favicon- User wants to audit a Vite/React project for scaffolding leftovers before shipping
Core Concepts
What Lovable injects
Lovable adds three categories of scaffolding that must be removed:
- Dependency —
lovable-taggerdev dep +componentTagger()call invite.config.ts. This is the only runtime hook; removing it is always safe. - Branding artifacts —
favicon.ico/png,og-image.png,logo.png, generic<title>, and a Lovable project URL inREADME.md. - Generated docs —
CLEANUP_SUMMARY.md,DEPLOYMENT_GUIDE.md,DEVELOPMENT_SUMMARY.md,LOGO_UPDATE.mdin the project root.
Why the execution order matters
Removing deps before editing source files avoids lockfile conflicts. Cleaning docs last means the README reflects the already-cleaned project.
Unused dep footprint
Lovable pre-installs the full shadcn/ui component set (29 components) and all Radix UI
primitives (30 packages). Most projects use 5–10. The unused ones are safe to remove but
@radix-ui/react-slot must be kept — it is an indirect dep used internally by many
shadcn components via the asChild prop.
Recommended Execution Order
- Dependencies (Areas 2 & 7) — clear the package graph first
- Build config (Area 3) — remove the tagger from Vite
- Entry points (Areas 4 & 6) — clear runtime references
- Assets (Area 5) — swap brand files (defer if assets not ready yet)
- Docs & README (Areas 1 & 10) — clean last so README reflects the cleaned project
- Environment & Git (Areas 9 & 12) — security sweep
- SEO / deploy (Area 11) — usually a no-op; confirm and move on
- Unused deps (Area 13) — safe to defer until after ship if on a deadline
Step-by-Step Guide
Area 1 · README.md
- Line 1: Replace
# Welcome to your Lovable projectwith the real project title - Line 5: Remove
https://lovable.dev/projects/REPLACE_WITH_PROJECT_ID - Lines 11–19: Delete the "Use Lovable" instructions block
- Lines 65–73: Delete the "Deploy via Lovable / custom domain docs" block
✅ After stripping, read the README end-to-end. Offer to write a replacement intro paragraph if large sections were removed.
Area 2 · package.json
- Remove
"lovable-tagger"fromdevDependencies - Rename
"name"from"vite_react_shadcn_ts"to the real project name (kebab-case) - Scan the
scriptsblock for"lovable"or"lovable:*"entries and remove them
grep -n "lovable" package.json
Area 3 · vite.config.ts
- Remove
import { componentTagger } from "lovable-tagger" - Remove
mode === 'development' && componentTagger()from the plugins array - Remove
.filter(Boolean)if it was only present to handle the conditional tagger
grep -n "lovable\|componentTagger\|filter(Boolean)" vite.config.ts
Area 4 · index.html
- Replace the generic
<title>with the real product name - Remove any
<!-- Generated by Lovable -->comments or Lovable meta tags - Replace the Lovable favicon reference if present
grep -in "lovable\|generator" index.html
Area 5 · public/ assets
Replace these files (keep filenames, swap content):
| File | Action |
|---|---|
favicon.ico |
Replace with real icon |
favicon.png |
Replace with real icon |
og-image.png / logo.png |
Replace with real brand assets |
placeholder.svg |
Usually unused — safe to delete |
✅ Flag which files are actually referenced in <head> vs dead weight so the user
knows what to prioritise.
Area 6 · Source files
src/main.tsx— scan for Lovable HOCs, wrappers, or commentssrc/App.tsx— same- Auto-generated components — look for
// generated by Lovableheaders
g