Work / Designable

Started as a chatbot. Shipped as a photo upload.

Designable is Ruggable's AI rug recommender. The team started thinking it was a chat experience, then a form. Through three production versions and a steady habit of cutting things, the version that shipped is just a photo upload. The customer drops a picture of their room, the AI does the rest, and a curated set of rug picks comes back in seconds. There's a retry button for a fresh take on the same image. I led UX from ideation through ship.

RolePrincipal UX Designer · Lead
CompanyRuggable
PlatformWeb
Status Shipped · 2024
14% Conversion rate
on Designable sessions
>Quiz Beats the existing
Rug Quiz
3x Production versions
shipped to date
01 · The problem

Choosing a rug is a confidence problem.

Ruggable customers buy a rug they're going to see every day. The rug isn't the decision, the room is. "Will this work in my space" is the question they actually want answered, and the existing Rug Quiz wasn't getting them there. People completed it, got a list back, then bounced to PDPs and second-guessed their way out of the purchase.

The PM team framed it directly in the project brief: customers want to feel confident they made the right choice on something they'll see every day. The product needed to do what the catalog couldn't. Read the room (literally), narrow the field, and hand back a small set of picks the customer believed in.

What we wanted but didn't ship
Rendering the recommended rug into the customer's uploaded photo. The team was clear we'd pursue it eventually; it would close the visual loop and answer "will it look right" directly. Budget, timeline, and the conversion case to justify the build weren't there for this round, so the visualization stayed in the backlog and we shipped without it.
02 · The chatbot premise

The team's first instinct was chat.

The initial framing came in as: "friendly interior designer in a chat window." Recognizable shape, low cognitive cost, conversational. Open the box, type a question, get advice back. Generative AI was good enough by mid-2023 to make the premise plausible and a chatbot UI didn't need a new mental model.

Chatbot panel, open state
The chatbot panel, open. A "designer in a chat window" framing: free-form prompt, conversational back-and-forth.

Working through ideation, I built a few low-fi flows for the chatbot version. Each one ran into the same problem: the conversation didn't actually shorten the path to a recommendation. People didn't know what to type, the model didn't know what to ask back, and the back-and-forth was stretching out a decision the customer wanted to land on quickly. A chat window is a good shape for exploration. It's a bad shape for a five-minute purchase.

03 · The form pivot

Trade the chat for structured inputs.

The pivot, after a couple of ideation rounds, was treating the interaction as a structured form with AI behind the curtain, not a free-form chat with AI as the partner. The first form had a photo upload, a tag list of style and color options, and an open text box for whatever the customer wanted to add. The model still did the heavy lifting on reading the room, matching aesthetic, and narrowing the catalog. It just stopped asking the customer to drive.

Form variant of the panel, structured inputs
The form variant of the panel. Structured inputs and a photo upload replaced the chat window.
04 · Out of the widget

Off the launcher. Onto its own page.

Before the next round of cuts, Designable moved out of a launcher panel docked to other pages and onto its own dedicated URL. Up to that point, customers reached the tool by clicking a launcher on the landing page or a PDP, and the experience always lived inside a panel attached to whatever page was underneath it. Putting it on its own page changed what the tool could do.

The biggest unlock was sharing. With a real URL, a customer could send a friend a link to the tool, or a link to their results for a second opinion. It also gave the experience room to design for itself instead of around the page below it. Full-bleed upload state, generous results layout, and a retry button that didn't feel cramped.

05 · The cuts

Each version removed something.

The form pivot wasn't the end of the story. It was the start. Across three production versions, the consistent direction was: cut more, ask less, trust the model with the photo and let it work. The version that shipped is barely a form at all. Each round, we found that what we thought was helpful structure was actually noise the model didn't need and the customer didn't want to fill out.

  1. v1 · MVP
    The widget. The most stuff.
    A launcher panel with three inputs: photo upload, a tag list of style and color options, and an optional description text box for the customer's ideal room. Internal release first, then live. The point was to get real usage data, not to ship every idea on the whiteboard. Real usage proved the most-stuff version was the most fragile.
  2. v2 · Cut the text. Tags became opt-in.
    Drop the text box. Move tags to a second screen.
    Early data and user testing flagged the freeform text box as the noisiest input. People didn't know what to type, and what they typed pulled the model in directions the catalog couldn't follow. We pulled the text out, used the move to a dedicated page to give the upload more room, and turned tags into an optional second step (the customer hits "Add tags" if they want to nudge the result; otherwise the photo runs as-is). Results split into Your Matches and You May Also Like.
  3. v3 · Cut the form
    Just the photo. Plus a retry button.
    The tags went next. Testing kept showing customers who skipped the optional tags got recommendations roughly as good as customers who used them, and the act of asking was costing more attention than the inputs were earning. We cut everything except the photo upload, added a retry button so the customer could roll for a fresh set of picks on the same image, and let the model do the rest. Eng upgraded the model alongside, and the landing page got "how it works" image previews so customers knew what to expect from a one-step experience.
v1 · MVP (widget)
Designable v1 — launcher panel with photo, tag list, and optional description
v2 · Tags became opt-in
Designable v2 — tags moved to an opt-in second screen with categorized tabs
v3 · Just the photo
Designable v3 — photo upload only
Three production versions, side by side. Each one cut something the previous version asked the customer to fill out.

How we knew to keep cutting

Heap analytics told us where customers were dropping off. To understand why, I set up two rounds of usertesting.com studies alongside the quantitative data, with focused questions for each phase:

  • v1 study. Do users trust the rugs the AI recommends? Have participants run the tool a few times to gauge satisfaction across runs, and gather open feedback on the design.
  • v2 study. Evaluate the impact of the v2 updates specifically (the AI's description copy and the recommended rug presentation). Measure satisfaction with the recommendations, and gather feedback to inform v3.

From the studies

Two themes carried the most weight across the rounds. Both pushed the design toward less, and both shipped the version that's live now.

v1 study · twelve sessions · usertesting.com

People wanted more options, not more inputs.

v1 returned three picks behind a launcher panel of selectors. Customers asked for five at the top, more variety in the results (less of a single earthy palette), and friction-free image upload. About a third of users said they'd want to see the rug placed in their actual space. The "More Options" rail below the top picks read as an afterthought and got little engagement. The freeform text box was the noisiest input: people didn't know what to type, and what they typed pulled the model in directions the catalog couldn't follow.

→ Drove v2. Cut the text box, made tags opt-in on a second screen, split results into "Your Matches" and "You May Also Like" so the longer catalog tail wasn't buried.
v2 study · twelve sessions · usertesting.com

The "Why it fits your space" description was the unlock.

Almost every participant pointed to the AI-generated description as the most useful part of the page. Without any structured input from the customer, the model was already reading the space accurately and explaining the match. About 16% felt the picks didn't match their style, but most found at least one rug they'd consider. The common path to a better set was resubmit, running the same photo again to roll a fresh angle on the same room.

→ Drove v3. Cut the tag step entirely. If the photo alone read the room well enough to power the description, the form was costing more attention than the inputs were earning. Retry stayed and got promoted: it's the feature, not error recovery.
Logged for later · across both studies

The wishlist that didn't fit this round.

Two requests came up across enough sessions to belong in the backlog rather than the next cut. The first is showing the recommended rug rendered into the customer's uploaded photo, the in-space visualization the team wanted from the start and set aside for budget. The second is a webcam path for desktop customers who didn't have a room photo on their PC. Both stayed out of v3; both are real things to design for next.

06 · What shipped

Upload a photo. Retry for more.

The shipped experience is one screen. Drop a photo of your room. Wait a few seconds while the model reads the space and matches against the catalog. Get a curated set of rug picks with direct links to the PDPs. If the picks aren't right, hit retry, and the same photo runs again for a fresh set.

Designable shipped — upload state 01 · Upload
Designable shipped — processing state 02 · Processing
Designable shipped — results 03 · Results
Designable shipped — expanded view of a pick with retry and upload-new options 04 · Expanded
Four beats, top to bottom. Upload, wait, results, expand any pick. The expanded view is where retry and "upload a new image" live: same photo for a fresh set, or swap photos to start over.
Designable — expanded detail view on desktop
Same flow, desktop. Expanded detail view of a recommended rug: full rug imagery, attribution back to the PDP, and a direct path to buy.

The retry button earned its place specifically. AI recommendations are non-deterministic; the same photo runs return slightly different picks each time. Earlier versions tried to hide that with caching and consistency tricks. v3 leaned into it. Retry isn't an error recovery, it's the feature: each click is a fresh angle on the same room.

What's under the hood

My job was the experience, not the engineering, but the system constrained the UX in ways worth naming. Eng wired the flow to OpenAI's vision model for reading the uploaded photo, GPT-3.5 Turbo for processing prompts, and Shopify Semantic Search for matching against the live catalog. Heap captured the interaction events for later analysis.

OpenAI · Vision GPT-3.5 Turbo Shopify Semantic Search Contentful (prompt store) Heap (analytics) Vercel
07 · Reflection

What designing AI taught me.

What worked

Each version removed something.

The instinct was to add: more inputs, more options, more guidance. The data kept telling us the opposite. v2 cut the text box. v3 cut the rest. The design got better as the form got smaller. The shipped version is barely a form at all, and that's the whole point.

What I'd change

Trust the model sooner.

The selectors stayed in v1 and v2 because we wanted to give the customer agency over the result. The data showed customers either skipped the selectors or got slightly worse recommendations when they used them. If I'd run the "just the photo" cut earlier, we'd have shipped the right version sooner.

Open question

Where does AI sit on the site?

Designable is its own surface today. The next question is whether the same intelligence belongs inside the PDP, the PLP, or wherever a customer is stuck. Embedding the recommender into existing flows is a bigger UX problem than building it standalone.

What's next

14% says it works. Now scale it.

Designable sessions hit a 14% conversion rate and outperformed both the Rug Quiz and non-Designable sessions, with the marketing push still ahead of it. The next question is reach: how do we get more of the audience into the tool, and where else does the same intelligence belong (PDP, PLP, post-purchase). The hard part was always going to be the result. We have it.

Next case study
Ruggable · 2022–24

Brand LP Framework. Pages in hours.

An atomic component library, a page template with a fixed top and swappable middle, and a Figma-to-Contentful bridge that lets anyone at Ruggable ship a new collab page in hours without design or dev.

Read Brand LP Framework