Spotless Agency
Product
Virtual staging tool for Spotless Agency
My role
UX audit and UI redesign
Team
Solo project
Timeline
1 day

Problem
An AI-built prototype was confusing to use and blocked the launch for waiting clients.
Outcome
Shipped in 1 day; the team onboarded 3 waiting clients.
Key decisions
Removed the token balance
Problem: The prototype showed a token balance, but there was no flow for users to top it up, and no UI to log in at all. Clients were waiting, so there was no time to build a payment flow.
Options:
- Design a self-service top-up flow: complete, but too much work for one day and needed a payment provider.
- Let the client manually top up trial accounts: fast and sufficient for an MVP, but doesn’t scale.
Decision: I removed the balance from the UI so trial users wouldn’t be confused by a number they couldn’t change, and the client agreed to top up their accounts manually. I also flagged that a login is required and added an account area to the header.
Restricted file upload
Problem: The system had no rules for unexpected uploads, such as videos, GIFs, very large files, or images with aspect ratios that didn’t match the preview frame.
Options:
- Support more file types: more flexible, but adds edge cases and engineering effort.
- Restrict file types and size, and letterbox mismatched aspect ratios with black borders.
Decision: We limited uploads to supported image types and a maximum file size, and showed mismatched images with black borders. This prevents errors with minimal effort and keeps the room photo intact, which matters for real estate listings.
Kept a desktop-only layout for launch
Problem: The app only worked on desktop; on mobile, the layout broke. The timeframe was one day.
Options:
- Design a responsive version: best experience, but not feasible in one day.
- Keep the desktop layout and let mobile users switch to desktop mode in their browser.
Decision: We kept a single desktop layout, and mobile users access the app through their browser’s desktop mode. This kept the app usable without delaying the launch, with a responsive version deferred.
Deferred edge cases
Problem: The prototype didn’t define what happens when generation fails or times out, the user reloads mid-session, or the edit limit reaches zero. There was no time to design all states.
Options:
- Design all edge case states now: more robust, but would delay the launch.
- Flag them for the next iteration and fix only what’s quick.
Decision: I flagged these edge cases for the next iteration and fixed the quickest one: the edit limit and selected candidate appear as status chips, so users always know where they stand.
Adopted the familiar input pattern
Problem: The input area was clunky and unclear: controls were scattered around the text field, and the edit options didn’t read as one action.
Options:
- Invent a custom input pattern: could be unique, but users would need to learn it.
- Follow the multimodal input pattern of popular AI tools.
Decision: I rebuilt the input as one composer, with suggestions above the field, attachments inside it, and all actions grouped together. Users already know this pattern from popular AI tools, so there’s nothing new to learn.
Unified the visual style
Problem: The UI mixed different fonts, colors, button styles, and label formats.
Options:
- Build a full design system: scalable, but too much for one day.
- Align the existing styles directly in the UI.
Decision: I aligned typography, colors, and components directly in the UI, which delivered a clean, consistent look within the one-day timeframe.
Outcome
Impact: The team quickly implemented the redesign and onboarded 3 clients waiting for the launch.
Deferred UX issues: I identified additional usability problems that the client chose to postpone because of time constraints. For example, the three result candidates on the right weren’t intuitive to compare or select, and style selectors on the left were redundant. I handed these over as suggestions for the next iteration.
What I’d do differently: Speed mattered most here. The issues I flagged were valid, but I could have focused on the direct request, polished the UI, and moved the rest to the backlog earlier.
Next steps: In the next iteration, replace the current workarounds, like manual top-ups and desktop mode on mobile, with proper designs.

