Model 1 — Hosted output
The first model is hosted. The AI builds the product inside its own runtime, the user iterates inside that runtime, and the product effectively lives there. Export, if it exists, is downstream from the real product.
This model has the smoothest first-hour experience. The cost is continuity: the project is yours only as long as the platform stays alive, stays affordable, and stays aligned with where you want to go.
Model 2 — Code-first
The second model generates code, sometimes very impressive code, but treats the generation as the product. Output is downloadable but the structure is often shaped for the demo, not the next month.
This is where a lot of "vibe coding" outputs sit: code that looks great in the first minute and gets harder to continue the moment a second person opens the repo.
- Generation is the product.
- Output exists but is shaped for the moment, not continuation.
- Continuation becomes the user's problem after the first session.
Model 3 — Repo-first
The third model treats the repo as the actual product. The hosted experience is a convenience on top of the real deliverable — a downloadable Next.js or Expo project, with a structure deliberately shaped to be continued by humans afterward.
Virex sits in this third model on purpose. Vibe coding is welcome on the front of the workflow; lock-in is rejected on the back of it.
The edit question most comparisons skip
Generation is not the only moment lock-in shows up. Editing is the other one, and most comparisons quietly skip over it.
Most vibe coding platforms charge for every interaction — including the small styling fixes, including the moments where you ask the model to repair something the model itself caused. A repo-first tool can resolve micro-edits deterministically without a model call at all, for zero credits. Larger edits scale with what actually changes, not with how many tokens the context window happens to consume.
The other half of the question is what happens when you stop paying. On a hosted tool, the subscription ends and the live app stops with it. On a repo-first tool, the subscription ends and the repo keeps running on Vercel or wherever you put it. The deliverable was always the code; the platform was always optional.
These two facts — cheap editing on the way in, free running on the way out — are the difference between vibe coding as a workflow and vibe coding as a dependency.
What if you already built somewhere else?
A repo-first approach also means you do not have to start over when you switch platforms. Upload an existing zip — your own work, or an export from Lovable, Bolt, or any other vibe coding tool — and the engine reads the styles, components, and structure already in place. New edits match what is already there rather than fighting it.
The move toward ownership does not need to begin at zero. It can begin with the project you already have, on the day you decide the next iteration should happen somewhere the repo is yours. The work you put into your earlier prompts is still in the components those prompts produced; uploading the zip carries that work forward into a continuation flow that no longer depends on the original platform staying alive.
That is the practical answer to the lock-in question. The exit door is not a feature you hope a competitor adds later; it is the way you walked in.
Why repo-first survives the workflow
Vibe coding gets people moving. Repo-first output makes sure they can keep moving when the vibes wear off, when a developer joins the project, when the platform changes its pricing, or when the user simply wants to host things themselves.
The workflow can be intuitive. The deliverable should still be ordinary code in ordinary files in an ordinary repo. That is the small philosophical line Virex tries not to cross.
