[HN Gopher] Wander - A tiny, decentralised tool to explore the s...
___________________________________________________________________
Wander - A tiny, decentralised tool to explore the small web
Author : susam
Score : 159 points
Date : 2026-03-18 07:43 UTC (15 hours ago)
(HTM) web link (susam.net)
(TXT) w3m dump (susam.net)
| susam wrote:
| Hello HN!
|
| This tool is inspired by Kagi Small Web (recent thread:
| https://news.ycombinator.com/item?id=47410542). A common concern
| raised here is that Kagi Small Web currently accepts only blogs,
| comics and YouTube channels. It does not accept arbitrary small
| websites. That limitation motivated me to build Wander.
|
| Wander is fully decentralised. Anyone can host it on their own
| website. It consists of just two files: an `index.html` for the
| Wander console and a `wander.js` where you link to other Wander
| consoles. It is a bit like a webring, but more flexible. Each
| console can link to any number of sites and other consoles.
|
| There is no server-side code, no database, nothing to install. If
| you have a website, you can set it up by uploading just two
| files. In fact, you can host it on GitHub Pages or Codeberg Pages
| too.
|
| If you like the idea, please join the network. I would love to
| see it grow.
|
| More details about how it works and how to set it up here:
| https://codeberg.org/susam/wander#readme
| hamdingers wrote:
| This is so delightful! I'll be deploying this and sharing a
| link on the issue.
|
| One issue I see: If I get you to include a link to my console
| but I don't link to any others, I can trap wanderers within my
| recommendations until they refresh.
|
| If that's not desirable, it could be avoided by having the
| client keep a running list of all the consoles it has
| discovered this session and choosing from that list at random.
| susam wrote:
| Glad you like it. Yes, you are right. This is something I
| realised too initially as a natural consequence of being the
| only participant in the console network at the beginning.
| Keeping a list of discovered consoles is exactly what I was
| thinking too. I built this tool rather quickly as a proof-of-
| concept while taking a break from another activity, so I
| couldn't quite find the time to implement this solution. But
| I might implement it in the next update. Thank you for taking
| a close look at this project!
| bovermyer wrote:
| Oh, that's neat. I think to really understand it though I'll have
| to explore it and experiment with hosting my own Console.
| pbronez wrote:
| Cool idea - it's like a recommended set of links, but integrated
| into an interface like stumble upon or Kagi's small web browser
| deanebarker wrote:
| Love this, but I need it to allow me to break the frame. I found
| some neat sites, but I need a button to open them in a new tab,
| frame-free, if I want to.
| mzajc wrote:
| Firefox has a neat feature for this; if you right click an
| iframe, it'll have a "This Frame" menu with options including
| "Open Frame in New Tab".
| susam wrote:
| Thank you for taking a look at this project. I'm glad you liked
| it.
|
| You make a fair point. I put this together in about 1.5 hours
| in the early hours of the morning while taking a break from
| other academic work, so it is not as polished as it could be.
| Adding an 'Open' button to launch a link in a new tab sounds
| like a useful feature. I will consider this for the next
| update. Thank you for the feedback!
| moebrowne wrote:
| It includes only 17 URLs: https://susam.net/wander/wander.js
| susam wrote:
| 17 + 11 URLs from https://dahlstrand.net/wander/wander.js + 26
| URLs from https://www.siddharthagolu.com/wander/wander.js that
| I link to from the above link. So 54 URLs so far.
|
| The number of URLs grow as more people add this tool to their
| website and add each other as neighbours. The tool is capable
| of discovering neighbouring consoles and showing URLs from
| there.
| Balinares wrote:
| Did we just reinvent webrings 25 years later? :)
|
| (Not a diss. Webrings were cool.)
| warkdarrior wrote:
| This will get really fun when influencers get a hold of the idea
| and start connecting themselves into the Wander community.
| weedhopper wrote:
| Awesome it's hosted on codeberg too
| Babkock wrote:
| Looks cool. Good job!
| surgical_fire wrote:
| This is actually pretty cool. Once I have my own personal
| webpage, I may even add this tool to it.
|
| It is a project I keep postponing lol
| dgb23 wrote:
| I want to like it, but I don't fully understand why one wouldn't
| just put a bunch of links on a /wander page and maybe randomize
| the order?
| dreko wrote:
| Because the discovery is transitive. When you wander, it
| fetches another console's wander.js and picks from their pages,
| so you're not just exploring one person's list, you're hopping
| across a graph of curated lists. A static link page can't
| necessarily do that.
| susam wrote:
| What you are describing sounds a bit like a blogroll, which
| many of us do indeed maintain. Mine is here, by the way:
| https://susam.net/roll.html
|
| However, Wander is meant to be a bit like StumbleUpon, but
| without requiring a centralised service that everyone must go
| through. One limitation of a blogroll is that it does not
| provide a consistent way to discover recommendations
| recursively. For example, I might visit your website A, which
| recommends website B. I might then visit B, but B may not have
| any recommendations at all.
|
| Every Wander instance, on the other hand, has a defined list of
| recommendations. It also links to the /wander pages of its
| neighbouring sites. If you visit the /wander page of website A,
| the tool can discover its neighbours (B, C, etc.), then the
| neighbours of those neighbours and so on. It can fetch
| recommended links from them and present the links within the
| same console.
|
| Additionally, the tool provides a way to leave the current
| console and move to a neighbour's console if the visitor wants
| to continue browsing from there.
| desireco42 wrote:
| Ahhh... this is like my OneRandomSite.com from... 2006 or so...
| nice.
|
| I think we need things like this. To be reintroduced over and
| over.
| punknight wrote:
| I love this as a concept. The wander button is great, but it
| still needs some curating to decide what pages you like, and
| getting to the actual content. I guess I'd like to know the
| workflow moving forward? Just re-download the repo every couple
| weeks, and diff to see what new sites are on the list?
| susam wrote:
| Thank you for taking a look at this project. I'm glad you like
| the concept. I am not sure I have understood your question
| accurately, but let me attempt a response anyway. If I get it
| wrong, please feel free to correct me or ask me again.
|
| There is no need to re-download
| https://codeberg.org/susam/wander every few weeks. The setup is
| a one-time activity. From that repository, you copy exactly two
| files (index.html and wander.js) and place them on your web
| server, preferably within a /wander/ directory. After that, you
| only maintain the wander.js file.
|
| You curate your own links and choose which other Wander
| consoles to link to as neighbours. The contents of wander.js
| are entirely yours to define. There is no need to diff or
| compare it with the version in the repository.
|
| In fact, if you do not care about updating or curating links
| often, you can leave both files untouched indefinitely. The
| only downside is that some links may eventually succumb to link
| rot, which could affect the wandering experience. So it may
| help to review your links occasionally and remove dead ones,
| but beyond that no ongoing maintenance is required.
| punknight wrote:
| I get that, but right now, if you traverse each "console",
| you end up with a list of 28 trusted "small web" links. The
| project grows in value if that list gets bigger over time
| either by you personally adding nodes or the community adding
| nodes. I don't really have a way of knowing if you are
| intending to add more links to your console (thus growing the
| project) or this is a one and done type of system.
| susam wrote:
| > I get that, but right now, if you traverse each
| "console", you end up with a list of 28 trusted "small web"
| links. The project grows in value if that list gets bigger
| over time either by you personally adding nodes or the
| community adding nodes.
|
| Yes, all of this makes sense.
|
| > I don't really have a way of knowing if you are intending
| to add more links to your console (thus growing the
| project) or this is a one and done type of system.
|
| I personally do not plan to add too many page links to my
| console. However, I will add more console links, which has
| the effect of expanding my console neighbourhood and
| thereby increasing the pool of recommendations.
|
| That said, I am not sure why it matters whether I add more
| links to _my_ console specifically. In my opinion, any
| single Wander instance should not matter much on its own.
| What matters more is whether the network as a whole grows,
| that is, more consoles being set up and more of them
| linking to each other.
|
| One of my design goals has been to avoid giving any
| particular console a special status. All consoles are equal
| participants in the network from a technical perspective.
| You should be able to pick any console from the network,
| perhaps one belonging to your favourite blogger, perhaps
| even your own and explore the neighbourhood from there.
| Yes, the neighbourhood would look different from each
| console but that's pretty much the point of this project.
| As long as the overall graph of consoles is connected, you
| could in theory reach any community recommendation from any
| starting point. Even if the graph is not fully connected, I
| do not see that as a significant issue. It just reflects
| how connections tend to form in a decentralised system.
| Please let me know if you think I have missed your point
| again.
| dreko wrote:
| This is really cool, I think the idea here is fantastic!
| ab_testing wrote:
| So like StumbleUpon
| shevy-java wrote:
| I don't know how useful this is, but I am getting tired of Google
| and co ruining the world wide web how it once was. Something has
| to be done. I have no idea whether this here can be of help or
| not but the more people think about this, the better. Otherwise
| the quality will continue to degrade.
| bovermyer wrote:
| So, is this a meta-webring, that allows for showing individual
| sites but also sites that show other sites?
| xnorswap wrote:
| So is this web rings all over again?
| moralestapia wrote:
| It is StumbleUpon over again.
| susam wrote:
| There is indeed a lot of similarity with webrings and
| StumbleUpon but there are some differences as well. I discuss
| this in more detail in the project README here:
| https://codeberg.org/susam/wander#faq
| moralestapia wrote:
| Just to clarify, I like Wander. I'd really like to see
| something fill in the void left by StumbleUpon.
|
| I used to spend hoooooooours wandering there.
| worldsayshi wrote:
| I kind of want webrings but with federated OIDC. I.e. you can
| create an account at any of the sites and re-use the login on
| the others to leave comments/add content. This has to exist in
| some neat package right?
| pacoWebConsult wrote:
| We're inventing stumbleupon from first principles.
| tlavoie wrote:
| That... seems like a good thing!
| thenthenthen wrote:
| Tangent but wow codeberg is not blocked by the Great Firewall?
| vydd wrote:
| Delightful!
| jna_sh wrote:
| Title is wrong, isn't it Wander?
| susam wrote:
| Yes, I am not sure how I managed to mess up the project name. I
| have emailed the moderators to ask for help in fixing it.
| jna_sh wrote:
| Oh I totally missed you had submitted it yourself! Thanks for
| a wonderful project :)
| dvh wrote:
| Remove the iframe padding/margin on mobile.
| tomhow wrote:
| That was me sorry! I was quickly fixing it up while a meeting
| was starting, and I hurriedly re-typed it rather than
| copying+pasting like I should always do with project names.
| InexSquirrel wrote:
| Very cool. Reminds me of stumbleupon, which I lost many hours to
| back in the day.
|
| Curated discovery is one of biggest gripes with modern platforms
| like youtube - discovering something truly new and outside of
| your normal interests is really difficult, and the same goes for
| the web. If you have a topic you want to explore it's fine, but
| finding random things you'd never have thought of yourself is
| much harder.
| oystersareyum wrote:
| Stumble upon led to most of my interests in life, so happy for
| this
| Uncle_Clark wrote:
| Same. Curated content narrows the scope of discovery to find
| meaningful things. I always look for a way to turn off that
| "feature." Very cool!
| rando77 wrote:
| I've thought of a service that scans new websites and GitHub
| repos and looks for things that don't look like anything else
| (using something like hdbscan for outlier detection), and
| creates a feed for people to follow.
| cosmicgadget wrote:
| Seems like a perfect addition to any links page.
|
| Would it be possible to create a list of sites with a Wander?
| superkuh wrote:
| It would be cool if the javascript were re-written a bit to only
| use standard long existing javascript features so one didn't have
| to run a modern corporate browser to use the "wander"
| functionality. It did not work in my browser even with JS
| enabled.
| touwer wrote:
| love it!
| thewanderer1983 wrote:
| Have you considered including Gemini and gopher support? There is
| a very nice small web community there.
| realaliarain74 wrote:
| this is more nuanced than the title suggests. worth reading the
| whole thing
___________________________________________________________________
(page generated 2026-03-18 23:00 UTC)