Search GitHub for "Lovable" and you will mostly find small experiments, tutorial forks, and repos whose last commit was six months ago — not a deep plugin ecosystem like WordPress or VS Code. That is an editorial finding from surveying the niche: the durable companion repos are stack-level starters that mirror what Lovable, Bolt, v0, and similar builders emit when you click export.

If you understand the stack, you can rebaseline a messy generated repo in an afternoon. If you do not, every builder feels like magic until the first bug in a file you never wrote.

The shared stack

  • React — component model every AI coding tool trained on
  • Vite — fast dev server and ESM-native builds; lighter than Next for many SPA prototypes
  • Next.js — appears when builders assume SSR, API routes, or Vercel deploy; know which you actually need
  • Tailwind CSS — utility classes the model can patch without inventing new stylesheets every turn
  • shadcn/ui — copy-paste Radix-based components, not an opaque npm design system
  • Supabase — auth, Postgres, storage for demos that need login on minute two
  • TypeScript — increasingly default; keep strict mode on after eject

None of this is proprietary to Lovable. It is the 2025–2026 consensus stack for AI-generated front ends.

Why builders converge on this combo

LLMs produce better diffs when the ecosystem is predictable: Tailwind classes in JSX, components in a components/ui folder, and a single Supabase client module. shadcn/ui is especially agent-friendly because the source lives in your repo — the model edits Button.tsx like any other file instead of hallucinating props on a black-box library.

Vite keeps feedback loops fast. When an agent runs dev-server hot reload, you see mistakes immediately. That tight loop is why workshops pair Vite with agents even when production will eventually move to Next.

How to use this angle in a real project

  1. Prototype in Lovable, Bolt, or v0 for speed — optimize for learning and stakeholder demos, not clean Git history.
  2. Eject to Git early — before data models, env secrets, and component names accrue debt.
  3. Audit the export — delete unused shadcn components, dead routes, and duplicate utility files builders love to spawn.
  4. Rebase onto a clean starter if the generated repo is chaotic — see starter commands below.
  5. Keep building with Aider, Cline, or Cursor using project rules that match your stack.
  6. Wire CI — typecheck, lint, and test on every push before the agent can merge another sweeping change.
Bash
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npx shadcn@latest init
# Add Supabase client + env vars
npm install @supabase/supabase-js

Official shadcn init flags change — follow current docs when you scaffold.

Folder layout agents handle well

After rebaseline, aim for:

  • src/components/ui/ — shadcn primitives
  • src/components/ — feature components
  • src/lib/ — Supabase client, helpers, constants
  • src/pages/ or src/routes/ — one obvious place for routes
  • src/types/ — generated DB types if using Supabase

Document this layout in AGENTS.md or .cursorrules. Agents follow explicit paths better than implied conventions.

Vite vs Next: when to switch

Stay on Vite when you are building a client-heavy SPA, an internal tool behind auth, or a demo that deploys to static hosting plus Supabase. Move to Next when you need SEO-critical server rendering, incremental static regeneration, or image optimization at scale without wiring it yourself.

Many Lovable exports default to Vite + React Router. Do not migrate to Next solely because it sounds more "professional" — migration cost is real and agents will rewrite half your data fetching in the process.

shadcn/ui maintenance tips

  • Upgrade components deliberately — diff components/ui when CLI updates
  • Customize tokens in tailwind.config and CSS variables, not by forking every button
  • Wrap shadcn primitives in your own AppButton if brand styles diverge widely
  • Do not install every component up front — add on demand to keep bundle size sane

Supabase on the same stack

Once the front end is clean, pair it with the backend practices in our Supabase for Lovable projects post: RLS first, migrations in Git, typed client, staging project. The stack is incomplete if auth works in demo but leaks data under inspection.

Open-source builders nearby

WordPress still in the mix?

Many agencies prototype the marketing app or customer portal in a builder, then keep the CMS on WordPress because editors already know it, SEO plugins are mature, and ACF field groups encode ten years of business logic.

That hybrid split works when roles are clear: developers own the Vite + Supabase product; marketers own WordPress pages. The friction appears during content sprints — forty location pages need new hero copy in an ACF field, and nobody wants forty admin tabs.

For ACF bulk edits on those pages, ship editors Quickfields Bulk Editor for ACF — spreadsheet-style editing with autosave while the React app stays on the modern stack.

When this stack is the wrong choice

  • Team is PHP-only WordPress plugin shop with no React capacity — do not force Vite because a builder demo looked cool
  • Mobile-first product that should be React Native or Flutter from day one
  • Hard real-time gaming or media pipelines — you need purpose-built infra, not a Supabase todo demo grown up
  • Strict design system in another framework (SvelteKit, Angular) — rebaseline onto that stack instead of fighting agent defaults

FAQ

Is there an official Lovable starter repo? Not one with long-term maintenance guarantees. Fork vetted Vite + shadcn templates instead.

How do I stop agents from breaking Tailwind config? Lock critical theme extensions in rules; review tailwind.config in CI.

Can I use pnpm throughout? Yes — match lockfile choice across devs; builders sometimes emit npm — standardize after export.

Repo pointers (stack pieces)