No-Code · Competitive Design · Partner Tools · Revi OS
The first version was vibe-coded on Lovable by our CEO and a sales lead. Over five inconsistent layouts, blocked screens, features buried behind features — editing was so hard that even our own team got stuck. I audited every page, benchmarked Shopify, Squarespace, Wix and the restaurant-specific competitor, and rebuilt it into one simple editor restaurant owners actually wanted to use.
One canvas. One editor. Toggle-gated depth — simple by default, customizable when asked.
Same capability. Fraction of the complexity.
The Brief
The first pass had been vibe-coded on Lovable by our CEO and a sales lead before I was handed the project. They moved fast — but what shipped was five-plus different page layouts that didn't share patterns, screens that blocked users from editing core content, and features stacked on features until even our internal team couldn't demo the product without a cheat sheet.
The brief was simple, the work wasn't: keep the ambition (full website and app creation, multi-brand support, deep customization) but give restaurant owners a single, predictable editor. Something closer to Shopify and Squarespace than to the restaurant-specific incumbent — and crucially, usable by operators who'd never touched a design tool in their life.
What I Inherited
page layouts
Each new section was a new template. Typography, spacing, and section controls didn't carry between them.
blocked screens
Core flows — hero, menu, team, gallery — had states where users literally couldn't edit the content they saw on the canvas.
nested features
Features hidden three clicks deep inside other features. Powerful if you already knew where to look. Nobody did.
internal demo-ability
Our own onboarding team needed a cheat sheet to run a live demo. That was the tell.
The Approach
I started by walking every page in the original build as a restaurant owner would: logging every friction point, every duplicate control, every screen that blocked editing. Then I benchmarked against the tools operators already compared us to — Shopify, Squarespace, Wix, and the restaurant-specific competitor — and catalogued the patterns they'd trained users to expect: left-panel controls, a live canvas, section-scoped editing, smart defaults.
The redesign collapsed five layouts into one. One editor shell, one control panel pattern, one set of section types. Typography, background, buttons, media — each became a tab on the same left panel instead of a separate flow. Deep customization stayed for the operators who wanted it; smart defaults made sure nobody was forced to touch it.
What I Shipped
Every section — hero, content, media, team, menu, contact — now lives in the same left-panel editor with a live canvas to the right. Users learn the pattern once and apply it everywhere.
Every editable surface in the canvas now has a one-tap path to the control that edits it. No more "the feature exists but you can't reach it" states. This alone moved the needle in partner feedback.
Typography, backgrounds, button styles, media layouts (side-by-side, vertical, grid, scatter), bullet-point colors — real control for operators who want it. Smart defaults generate a working branded site from a name, category, and logo for operators who don't.
The incumbent only supported single-brand setups and treated mobile apps as a separate product. I designed one dashboard that handles restaurant groups, franchises, and multi-concept operators — with website and native app as two outputs of the same build.
The Editor
Outcome
Reflection
The thing I'm proudest of here isn't the switch numbers. It's that dozens of operators kept opening the builder after their onboarding call was over, and used it to spin up more sites for sister concepts, pop-ups, and catering brands. That's the test of a simplified tool: do people choose to use it when no one's holding their hand?
Inheriting a product that was vibe-coded and ambitious taught me something I carry into every project now: the AI can write the first version. The designer has to be the one who decides what stays, what dies, and what the user never should have had to think about in the first place.