Mobbin: Interface and the library model
I used Mobbin's UI as the model for a library structure that displays all the user flows and screens.


Building a Benchmarking Engine That Cut Our UX Research Time by 80%




Rival is a benchmarking and analysis tool that turns any product experience into a structured user flow and a full UX analysis, so you can measure whether something is worth building before you build it.
Its purpose is simple: speed up the slowest, most manual part of product design, UX research and analysis, and make it easier to study how the best UX practices actually apply to whatever you're building.

Every project I take on begins with research, and that's where I was consistently losing the most time.
Before I can design anything, I usually do the following process.

I split the process based on a follow-up of questions.
If I could build something that worked like a screen recorder for user flows, capturing screens as I moved through a product, and export and assemble it ready inside of Figma, I'd remove the single most repetitive part of research in one move.

With the problem defined, I researched how the hard parts had already been solved, so I could reuse proven approaches instead of reinventing them.
I studied products that had cracked adjacent problems and identified the specific patterns worth adapting for Rival:
I used Mobbin's UI as the model for a library structure that displays all the user flows and screens.

Their Figma HTML open source allows me to know how the component tree could get rendered into real Figma nodes.

Used to know how all the infrastructure from the platform to web capture works; this helped me create a Chrome extension that works with the platform and then calls the Figma plugin.

Use to know their User experience in mobile devices and know how I can use it in mobile devices

The first PRD scoped Rival deliberately narrow: prove that capture can become a usable Figma flow. Nothing more.
Functions list






On export, Rival generated a snippet the designer pasted into the Rival Figma plugin. The plugin then assembled the full user-flow board: every screen, plus how each connected.
I split it this way on purpose: a lightweight capture layer, and a separate Figma plugin that owns visualization.
Keeping those concerns separate meant I could iterate on capture without touching how flows render, and vice versa.
capture layer
snippet
Figma plugin
I chose Shadcn as the foundation because it gave me production-ready, accessible primitives that map directly to real components, which mattered for two reasons.
1) Speed: I could design and build in the same language without reinventing base components.
2) Rival's own outputs: because Rival compares against a component library, building on Shadcn primitives meant the tool and its analysis spoke the same vocabulary.

With v1 built, I tested it against exactly one question:
Can it get a real exploration from point A to point B?
What I looked at:
v1 passed the core test: it captured a flow and delivered it into Figma.

While testing, I noticed the tool was doing more than taking screenshots. It could detect when a user clicked a button, and where that click led and map that connection into the flow automatically.
If the tool understood behavior, it could do far more than draw a flow, it could analyze one.
The data I was already capturing (actions, transitions, sequence) was exactly the raw material a UX analysis needs.
Testing revealed that v1 had accidentally built the foundation for a UX analysis tool.
Because I'd tested with real explorations rather than mock data, the click-detection behavior showed up during the test.
Turn captured behavior into real UX analysis and a build/no-build decision, instead of stopping at a flow board in Figma.
Functions list
The designer sets up an exploration (product, type, target Figma file, purpose), runs it, and exports.
The desktop experience covers setup and the exploration view; the flow-visualization lives in the plugin.
UX research and analysis time dropped by more than 80%. More importantly, the time that's left goes to the part that actually needs a designer, deciding which flow is better and what's worth building, instead of manual assembly.
From a single capture, Rival now answers the question every product decision hinges on: is this worth building?
Rival evaluates the captured flow against Nielsen's 10 usability heuristics on a 0–4 severity scale, under a stricter stance I call "Structural Determinism"
01 · Hero Landing
H8 · Aesthetic and minimalist designSev 2 · Minor
Hero landing screen presents seven competing feature tabs below primary product tabs, creating excessive navigation density above fold.
FIX
Consolidate feature navigation into collapsible accordion or move secondary tabs below hero section to reduce visual competition.
04 · Voice Creation Modal
H4 · Consistency and standardsSev 1 · Cosmetic
Close button icon placement alternates between top-right and top-left corners across modal dialogs without consistent positioning logic.
FIX
Standardize close button to top-right corner across all modal dialogs following platform conventions for dismiss controls.
06 · Voice Design Dialog
H5 · Error preventionSev 4 · Catastrophe
Voice generation executes without confirmation modal, consuming 350 credits per click with no warning of cost or undo mechanism.
FIX
Implement confirmation modal before generation stating credit cost and requiring explicit confirmation to prevent accidental depletion.
Rival maps the flow into 4–5 phases with actions, thoughts, mood, pain points, and opportunities, choosing an established phase model based on the product type.
Discovering
Marketing
Signing Up
Onboarding
Orienting
Dashboard
Rival inventories the analyzed product's user-completable features, each backed by real evidence (a captured screen, route, or nav item), and grades every one by centrality (primary/secondary/peripheral) and confidence.
Design Custom Voice
high
★ DEEP-DIVEPRIMARY
Create a new AI voice by describing characteristics in text prompts with parameter controls.
Browse Voice Library
high
★ DEEP-DIVEPRIMARY
Explore pre-made AI voices filtered by language, accent, and use case categories.
Instant Speech Generation
high
★ DEEP-DIVEPRIMARY
Generate speech audio from text using pre-existing AI voices from the library.