Two Silos: Vibe Coders and Tinkerers Need Different Defaults
Click once. Start building.
Or: configure seventeen settings before you trust it with production code.
Same tool. Two completely different users.
The tension every tool faces
Your team has both. The PM who wants to prototype a landing page without waiting for engineering. The senior engineer who refuses to use anything until they understand what it executes and when.
If you design for one, you lose the other. Design for the PM: the engineer never trusts it. Design for the engineer: the PM bounces after five minutes of configuration screens.
The instinct is to find a middle ground. Build one interface that works for everyone. Average the two experiences.
That instinct is wrong.
"Our users are in two silos ultimately... we have the silo of people who are newer or truly don't want to learn how to code, possibly. You know, you could call them the straight vibe coders, and then you have the actual, you know, the engineers, the tinkerers, the coders."
Harris,
The design pattern that works
The solution is not a compromise. Ship two experiences with a shared core.
Layer 1: The working default. A mode that works out of the box. No configuration required. Click and start using it. This is a preview of what the tool can do, not the final word.
Layer 2: The internals. Settings, modes, and controls for users who want to refine. Approvals, model selection, execution policies. Available but not mandatory.
The key insight: the default mode is not "the mode." It works. It's fine. It's good. But it doesn't do everything for everybody, and you shouldn't pretend it does.
"We're trying to find this balance between an out-of-the-box experience... and really that's a preview of what it can do."
Harris,
The tradeoff you are actually making
Averaging the experiences means both groups are frustrated.
The vibe coder sees configuration options they don't understand. The tinkerer can't find the controls they need because they're hidden to reduce complexity. Nobody is satisfied.
Separate defaults mean maintenance burden. Two paths through the product. More surface area to test. More documentation to write.
The bet: the maintenance cost is lower than the churn cost of losing either audience entirely.
Why this matters for your team
If you're a Series A through C company with a small engineering team, you probably have both user types already. The founder who wants to ship a feature without writing code. The lead engineer who needs to understand exactly what runs on the CI server.
Trying to onboard both with the same tutorial, the same defaults, and the same messaging will frustrate one of them. Usually the one who matters more to your current stage.
The shift: name the silo. Build the path. Don't pretend one mode serves both.
"We want to be very cautious to point people at this as the mode. Now, this is a mode that works. It works. It's fine. It's good. It doesn't do everything for everybody."
Harris,
The first step
Audit your current default experience. Ask: who is this designed for? If the answer is "everyone," the real answer is probably "no one in particular."
Then pick. Build the vibe coder path or the tinkerer path first. Make the other path accessible, not hidden. Let users self-select.
The tool that tries to be everything to everyone usually ends up being nothing to anyone.
How Roo Code supports both user types
Roo Code addresses this two-silo problem through its mode system and configurable approvals. Vibe coders can start immediately with a working default that proposes diffs and runs commands without requiring upfront configuration. Tinkerers get full control: they can configure approval policies, select specific models through BYOK (bring your own key), and define execution boundaries before the agent touches their codebase.
The agent closes the loop by running tests and iterating on failures, but the level of autonomy is user-controlled. A vibe coder might approve everything automatically during a prototype session. A senior engineer working on production code might require approval for every terminal command.
Roo Code lets each user type set their own trust boundary without forcing either to compromise.
| Dimension | Averaged UX (One Size Fits All) | Two-Silo Design (Roo Code Approach) |
|---|---|---|
| Onboarding time | Medium for everyone, optimal for no one | Fast for vibe coders, configurable for tinkerers |
| Trust calibration | Fixed approval level frustrates both | User-controlled approval policies |
| Feature discovery | Hidden complexity or overwhelming options | Progressive disclosure based on user path |
| Model selection | Single default or confusing choices | BYOK lets tinkerers choose; default works for vibe coders |
| Iteration speed | Compromised for safety or speed | Vibe coders iterate fast; tinkerers maintain control |
Frequently asked questions
Stop being the human glue between PRs
Cloud Agents review code, catch issues, and suggest fixes before you open the diff. You review the results, not the process.