<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: YxYo</title>
    <description>The latest articles on DEV Community by YxYo (@yxyo).</description>
    <link>https://dev.to/yxyo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4053741%2Fbda1f034-8515-4748-b5c4-7acaa0978e9a.png</url>
      <title>DEV Community: YxYo</title>
      <link>https://dev.to/yxyo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yxyo"/>
    <language>en</language>
    <item>
      <title>Designing Useful Randomness for an Open-Web Discovery Extension</title>
      <dc:creator>YxYo</dc:creator>
      <pubDate>Wed, 29 Jul 2026 18:03:35 +0000</pubDate>
      <link>https://dev.to/yxyo/designing-useful-randomness-for-an-open-web-discovery-extension-33jk</link>
      <guid>https://dev.to/yxyo/designing-useful-randomness-for-an-open-web-discovery-extension-33jk</guid>
      <description>&lt;p&gt;Most “random website” buttons have the same failure mode: they are random for about three clicks, then the experience becomes repetitive, noisy, or unsafe.&lt;/p&gt;

&lt;p&gt;I wanted to explore a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can serendipity feel surprising without feeling careless?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question became &lt;a href="https://bigo.ooo/web-wander/" rel="noopener noreferrer"&gt;Web Wander&lt;/a&gt;, a free Chrome and Firefox extension for discovering unexpected corners of the open web.&lt;/p&gt;

&lt;h2&gt;
  
  
  Randomness is not the product
&lt;/h2&gt;

&lt;p&gt;Pure randomness is easy. Useful randomness is a design problem.&lt;/p&gt;

&lt;p&gt;A good discovery session needs several kinds of variation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;different providers and provider types&lt;/li&gt;
&lt;li&gt;different destination domains&lt;/li&gt;
&lt;li&gt;broad wandering and focused wandering&lt;/li&gt;
&lt;li&gt;safeguards against search pages, login gates, unsafe downloads, and obvious spam&lt;/li&gt;
&lt;li&gt;enough memory to avoid immediately repeating what someone just saw&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web Wander currently rotates across 24 discovery providers. Those sources include independent-web indexes, curated collections, archives, academic resources, media discovery services, and small-web projects.&lt;/p&gt;

&lt;p&gt;The extension also offers 56 categories, custom keyword wandering, web-era browsing, and dedicated video and music modes. The point is not to predict the perfect next page. It is to give someone a useful way to leave the same feed for a few minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The interface has to explain the randomness
&lt;/h2&gt;

&lt;p&gt;A mystery button can be fun, but it also creates uncertainty. Where will it send me? Why did I get this result? Can I influence the next one?&lt;/p&gt;

&lt;p&gt;I ended up treating control as part of the discovery experience:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Browse all&lt;/strong&gt; rotates across the enabled provider mix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse by category&lt;/strong&gt; narrows the journey without turning it into ordinary search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom keyword mode&lt;/strong&gt; lets a passing curiosity guide the next destination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web-era modes&lt;/strong&gt; make time itself a browsing filter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provider controls&lt;/strong&gt; let people enable or disable discovery sources.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That balance matters. Too little control makes randomness frustrating. Too much control turns the product back into a search engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repetition is a state problem
&lt;/h2&gt;

&lt;p&gt;A random choice can still repeat patterns. Even if two URLs are different, they may come from the same domain, the same kind of provider, or the same narrow corner of the web.&lt;/p&gt;

&lt;p&gt;Web Wander keeps preferences, provider queues, a wander count, and recent destinations locally in the browser. It varies recent providers, provider types, and destination domains before navigating.&lt;/p&gt;

&lt;p&gt;The useful lesson was that “don’t repeat the previous URL” is not enough. Repetition has several layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exact URL repetition&lt;/li&gt;
&lt;li&gt;domain repetition&lt;/li&gt;
&lt;li&gt;source repetition&lt;/li&gt;
&lt;li&gt;source-type repetition&lt;/li&gt;
&lt;li&gt;category repetition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treating these as separate signals makes the experience feel much larger.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy changes the architecture
&lt;/h2&gt;

&lt;p&gt;Web Wander does not require an account. It does not send browsing history, destination history, cookies, referrers, advertising identifiers, or an extension-specific user identifier to a recommendation service.&lt;/p&gt;

&lt;p&gt;Most wandering uses provider routes, public catalogs, or fixed non-personal discovery requests. When someone deliberately uses custom keyword mode, that keyword may be sent to compatible search and discovery sources so candidate results can be assembled. The useful candidate pool and ranking remain local.&lt;/p&gt;

&lt;p&gt;This constraint removes a familiar growth shortcut: building a progressively richer behavioral profile. But it also keeps the product aligned with its purpose. A tool for escaping predictive feeds should not quietly build another predictive feed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discovery should send people outward
&lt;/h2&gt;

&lt;p&gt;Another design choice was to open discoveries on their original websites.&lt;/p&gt;

&lt;p&gt;The destination is not converted into a card inside Web Wander. It is not wrapped in an engagement feed. The extension is a doorway, not a replacement for the open web.&lt;/p&gt;

&lt;p&gt;That makes the product less “sticky” by conventional metrics, but stickiness is not always the right goal. Sometimes the most honest success metric is whether the tool helped someone leave the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I am testing now
&lt;/h2&gt;

&lt;p&gt;The project is live on &lt;a href="https://chromewebstore.google.com/detail/web-wander/bokckcinimhknjoejjbolbmocmcfkdob" rel="noopener noreferrer"&gt;Chrome&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/web-wander/" rel="noopener noreferrer"&gt;Firefox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The questions I care about next are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does controlled randomness stay useful across a longer session?&lt;/li&gt;
&lt;li&gt;Which categories produce genuine curiosity rather than novelty clicks?&lt;/li&gt;
&lt;li&gt;Is the privacy explanation clear before installation?&lt;/li&gt;
&lt;li&gt;Where does the provider mix feel uneven?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it, I would value blunt feedback on discovery quality, repetition, and whether the controls make the experience clearer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I built Web Wander. It is free, and this post explains the product and the design decisions behind it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
      <category>browserextension</category>
    </item>
  </channel>
</rss>
