Guide

Lovable Stacks: Classic vs Modern, What Actually Happens (I Tested It)

I ran five tests to find out what really happens when you try to switch between Classic (Vite + React) and Modern (TanStack Start) in Lovable. Spoiler - the stack is locked at creation and prompts cannot override it.

May 28, 20264 min111 views
#lovable#vite#tanstack

The question everyone asks

"Can I switch my project from TanStack to classic Vite?" or "if I remix a project, does it change the stack?"

Instead of guessing, I tested it. Five experiments, real projects, real results.


The two stacks

Lovable currently has two architectures:

Framework

Classic

Vite + React SPA

Modern

TanStack Start (SSR)

Routing

Classic

react-router-dom

Modern

@tanstack/react-router (file-based)

Entry point

Classic

index.html + main.tsx

Modern

__root.tsx (server-rendered)

Key files

Classic

src/pages/, src/main.tsx

Modern

src/routes/, src/router.tsx, src/server.ts

SEO

Classic

Needs prerendering

Modern

Built-in via SSR

Deploy

Classic

Any static host

Modern

Needs server runtime


What I tested

Test 1: Ask a TanStack project to switch to Vite

Created a project with the modern stack, then prompted: "switch this project to classic Vite + React, remove TanStack completely."

Result: The AI refused. The environment is fixed to TanStack Start and changing it would break the build, dev server, and preview system.

Test 2: Same thing, but more insistent

Tried again with: "I need you to use the classic version of Lovable."

Result: Same refusal. No option to change stacks from inside a project.

Test 3: New project, modern stack, but prompt says "use classic"

Created a brand new project with tech_stack "modern" but the initial prompt said "use the classic Vite + React stack, not TanStack Start."

Result: Still TanStack. The prompt cannot override the tech_stack parameter.

Test 4: Remix a Classic project

Remixed a project that was on the classic Vite + React stack.

Result: The remix is also Classic. Files confirm it: src/pages/Index.tsx, src/main.tsx, vite.config.ts. No TanStack anywhere.

Test 5: Remix a TanStack project

Remixed a project on the modern TanStack Start stack.

Result: The remix is also TanStack. Files confirm it: src/routes/index.tsx, src/router.tsx, src/routeTree.gen.ts, src/server.ts.


The rules

After five tests:

  1. The stack is locked at project creation
  2. Prompts cannot change the stack, not even on a new project
  3. The AI will refuse to swap frameworks mid-project
  4. Remix preserves the original stack, always
  5. The only way to get a specific stack is to set it when you create the project

How to create a project with the right stack

If you use the Lovable MCP (from Claude Code), specify it explicitly:

\\\`

create_project(

workspace_id: "your-workspace-id",

tech_stack: "classic",

initial_message: "build me a landing page..."

)

\\\`

For modern/TanStack:

\\\`

create_project(

workspace_id: "your-workspace-id",

tech_stack: "modern",

initial_message: "build me a landing page..."

)

\\\`

From the Lovable UI, look for the stack selection when starting a new project.


How to tell which stack you are on

Check your project files:

Classic (Vite + React):

  • src/pages/ folder
  • src/main.tsx
  • index.html at root

Modern (TanStack Start):

  • src/routes/ folder
  • src/router.tsx
  • src/routeTree.gen.ts
  • src/server.ts

If you are stuck on the wrong stack

You cannot convert mid-project. Your options:

  1. Create a new project with the stack you want
  2. Connect your current project to GitHub first
  3. Use that repo as reference to rebuild in the new project

It takes some work, but it is the only reliable path.

Quick fix: paste into your AI tool

Create a new Lovable project using the classic Vite + React stack instead of TanStack Start

💡 Use this with the Lovable MCP from Claude Code. For TanStack/SSR, change tech_stack to modern. The stack is locked at creation and cannot be changed later.

Works with Lovable, Cursor, Claude Code, ChatGPT, Windsurf, and more

Enjoyed this?

Carol Ships: building, shipping, figuring it out.

Have another workaround to share?

Start the thread below!

Comments

No comments yet. Be the first to share your thoughts!