Skip to content
All posts

·3 min read

Building visual product search: what I learned making Find Similar Products

Why keyword search fails shoppers who know what they want but cannot describe it, and the design lessons from building findsimilarproducts.com and its Chrome extension.

Shoppers often know exactly what they want. They have a screenshot, a photo from a friend, or a vague phrase like "that boxy linen shirt". What they do not have is the vocabulary the product catalog was written in, and keyword search punishes them for it.

That gap is why I built Find Similar Products, a visual search tool that finds similar products from an image or a bit of text, along with a Chrome extension that does the same for whatever you are looking at while you browse.

Where keyword search breaks down

Traditional search matches strings, not intent. If a product is titled "Relaxed-fit flax button-down" and the shopper types "boxy linen shirt", the result is nothing. The product exists. The words just do not line up, and the shopper has no way of knowing whether the store lacks the product or merely uses different nouns.

Images sidestep the vocabulary problem entirely. A photo carries shape, color, texture, and style, which are exactly the attributes shoppers can see but rarely name. Text still matters, because sometimes a rough phrase is all you have, but it works best treated as a description to be understood rather than a string to be matched.

The design constraints that mattered

Making the search work was one problem. Making it usable was the harder one, and three constraints shaped everything.

Zero learning curve. Nobody reads instructions for a search box. Upload an image or type a phrase, and results appear. Every option I considered adding to the input step eventually got cut.

Fast enough to feel like search. If results take longer than a beat, people assume the tool is broken and leave. Speed is not a performance metric here. It is what makes the interaction legible as search at all.

Filters after, not before. Asking shoppers to set category, price, and availability before searching kills the magic and assumes knowledge they may not have. Let the visual match go wide first, then offer smart filters to narrow what came back.

Why the Chrome extension exists

The web version assumes you have an image saved and a tab open. But the real moment of intent usually happens mid-browse: you are reading an article, or looking at a product you cannot afford, or scrolling a site that does not ship to your country, and you think, where else can I find this?

The extension collapses that moment into one step. Right there on the page, run the search on what you are seeing and get similar products back. No saving images, no switching tabs, no trying to describe a jacket in words. The lesson generalizes: put the tool where the intent occurs, not where the architecture is convenient.

Show your confidence honestly

The least obvious lesson was about how to present results. Similarity is a spectrum, and pretending otherwise erodes trust fast.

When the top match is strong, lead with it boldly. When matches are weak, say so and show breadth instead, because a shopper who understands they are seeing "closest available" will keep exploring, while one who was promised a match and got a mediocre one closes the tab. Search is a conversation with the shopper. The interface is how you hold up your end of it.