5 ms·
Wander – A tiny, decentralised tool to explore the small web
- susam 7mo agoHello HN! This tool is inspired by Kagi Small Web (recent thread: https://news.ycombinator.com/item?id=47410542 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 https://codeberg.org/susam/wander#readme
- hamdingers 7mo agoThis 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 7mo agoGlad 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!
- susam 7mo ago> 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. Implemented in <https://codeberg.org/susam/wander/commit/f4d95fa https://codeberg.org/susam/wander/commit/f4d95fa>. Thanks again for the discussion!
- prox 7mo agoIt would be nice if it wasn’t so framed in. How about a simpler “wander” overlay button that stays fixed (a bit like google recaptcha in the bottom corner) and pops up the console with links?
- korse 7mo agoYou can do this via html/css without breaking the functionality.
- prox 7mo agoAh I see, I said nothing then :)
- susam 7mo agoTo add to this fine suggestion, I'd like to highlight that Wander supports customising the appearance of the user interface. The section https://codeberg.org/susam/wander#customise-your-console https://codeberg.org/susam/wander#customise-your-console describes how someone setting their own /wander URL can customise how their console looks and behaves. I have seen a few consoles already using this feature to change their theme. So while I will keep my console as it is, because that is how I prefer it, with large buttons occupying the full header width, others who prefer a different layout can do so by adding custom CSS as described in the link above.
- pibaker 7mo ago> This tool is inspired by Kagi Small Web To me the way Kagi curates its small web directory always feel contradictory to the spirit of independent web publishing because it seems like you have to submit entries through GitHub — a highly centralized platform owned by one of the largest tech companies. kudos to you for figuring out a decentralized solution.
- refsab 7mo agoGood point. Would be less irritating if they hosted on codeberg.
- daigoro 7mo agoThis is delightful! I found a bunch of interesting sites in just a few minutes. I appreciate your simple and decentralized approach. I'm going to set this up on my website as a replacement for my boring blogroll list. Incidentally, I made something similar (also called Wander!) that uses browser bookmarks as a source of links. It's a browser extension called "Wander your bookmarks" and helps you wander through sites you bookmarked in the past. In addition to jumping you to a random bookmark, you can also filter your bookmarks by keyword and jump from that shortened list. Check it out here: http://kmshiva.com/projects/wander.html http://kmshiva.com/projects/wander.html .
- bovermyer 7mo agoOh, that's neat. I think to really understand it though I'll have to explore it and experiment with hosting my own Console.
- pbronez 7mo agoCool idea - it’s like a recommended set of links, but integrated into an interface like stumble upon or Kagi’s small web browser
- speefers 7mo ago[dead]
- deanebarker 7mo agoLove 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 7mo agoFirefox 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 7mo agoThank 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!
- susam 7mo agoHello @deanebarker, This was implemented in <https://codeberg.org/susam/wander/commit/f952fe4 https://codeberg.org/susam/wander/commit/f952fe4>. If you visit <https://susam.net/wander/ https://susam.net/wander/> now, you should see an 'Open' button that opens the recommended website in a new tab. Thank you for the great suggestion!
- moebrowne 7mo agoIt includes only 17 URLs: https://susam.net/wander/wander.js https://susam.net/wander/wander.js
- susam 7mo ago17 + 11 URLs from https://dahlstrand.net/wander/wander.js https://dahlstrand.net/wander/wander.js + 26 URLs from https://www.siddharthagolu.com/wander/wander.js 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.
- warkdarrior 7mo agoThis will get really fun when influencers get a hold of the idea and start connecting themselves into the Wander community.
- weedhopper 7mo agoAwesome it’s hosted on codeberg too
- Babkock 7mo agoLooks cool. Good job!
- surgical_fire 7mo agoThis 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 7mo agoI 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 7mo agoBecause 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 7mo agoWhat 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 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.
- dgb23 7mo agoOK I think I get it. It's fundamentally more about the streamlined experience. I played a bit with it and it _felt_ special. So my initial reaction might have been reductive.
- desireco42 7mo agoAhhh... this is like my OneRandomSite.com from... 2006 or so... nice. I think we need things like this. To be reintroduced over and over.
- Heer_J 7mo ago[dead]
- punknight 7mo agoI 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?
- deleted 7mo ago[deleted]
- susam 7mo agoThank 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 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 7mo agoI 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.
- 7mo ago
- Heer_J 7mo ago[dead]
- myylogic 7mo ago[dead]
- dreko 7mo agoThis is really cool, I think the idea here is fantastic!
- ab_testing 7mo agoSo like StumbleUpon
- shevy-java 7mo agoI 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 7mo agoSo, is this a meta-webring, that allows for showing individual sites but also sites that show other sites?
- xnorswap 7mo agoSo is this web rings all over again?
- moralestapia 7mo agoIt is StumbleUpon over again.
- susam 7mo agoThere 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 https://codeberg.org/susam/wander#faq
- moralestapia 7mo agoJust 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 7mo agoI 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?
- foo42 7mo agoI feel like activity pub was supposed to / does enable this. Perhaps someone better informed than I could comment.
- pacoWebConsult 7mo agoWe're inventing stumbleupon from first principles.
- tlavoie 7mo agoThat... seems like a good thing!
- thenthenthen 7mo agoTangent but wow codeberg is not blocked by the Great Firewall?
- vydd 7mo agoDelightful!
- jna_sh 7mo agoTitle is wrong, isn’t it Wander?
- susam 7mo agoYes, 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 7mo agoOh I totally missed you had submitted it yourself! Thanks for a wonderful project :)
- dvh 7mo agoRemove the iframe padding/margin on mobile.
- susam 7mo ago@dvh Done as part of <https://codeberg.org/susam/wander/commit/8e901ce https://codeberg.org/susam/wander/commit/8e901ce>. Thank you for the great suggestion.
- tomhow 7mo agoThat 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 7mo agoVery 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 7mo agoStumble upon led to most of my interests in life, so happy for this
- Uncle_Clark 7mo agoSame. 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 7mo agoI'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 7mo agoSeems like a perfect addition to any links page. Would it be possible to create a list of sites with a Wander?
- deleted 7mo ago[deleted]
- AlgorithmicSh63 7mo ago[dead]
- superkuh 7mo agoIt 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.
- susam 7mo agoSorry to know it did not work in your browser and thank you for reporting the problem here. If someone is able to reproduce it and share details either here or at <https://codeberg.org/susam/wander/issues https://codeberg.org/susam/wander/issues>, especially which JavaScript features are not working, I would be happy to update the code. I am aware that I have used a number of relatively modern features. For example, I suspect `for ... of` might be one, and perhaps `Element.append()` (instead of `Node.appendChild()`) could also be an issue. Unfortunately, I do not have old browsers to test this reliably, so any help in identifying the exact constructs or functions causing problems would be very appreciated.
- exographicskip 7mo agobrowserstack might be a good option to test a bunch of browsers and their different versions on real devices. Never used it personally, but might get some mileage out of the free plan before their time-based usage expires. https://www.browserstack.com/docs/automate-self-hosted/getting-started/browsers-and-versions#Playwright https://www.browserstack.com/docs/automate-self-hosted/getti...
- susam 7mo agoHello @superkuh, if you happen to revisit this, could you let me know which browser and version you were using? It would help me decide how far back I should support.
- superkuh 7mo agoHi susam thanks for the heads up on IRC. I'm using an ancient firefox fork from ~2015 called Palemoon 26.5. I use it because it's the best available on my computer with the good screen reader and text to speech setup. I am not a javascript developer but my JS console says "SyntaxError: Missing ; before statement" on line 136: let consoles = window.wander.consoles I'd bet it's that 'let' that's emcascript6. I sort of have a polyfill extension for some things from es6 but not all.
- touwer 7mo agolove it!
- thewanderer1983 7mo agoHave you considered including Gemini and gopher support? There is a very nice small web community there.
- MarsIronPI 7mo agoThis looks like it depends on Javascript for interactivity, which by design isn't possible on Gopher/Gemini.
- realaliarain74 7mo ago[dead]
- meridian_signal 7mo ago[dead]
- deleted 7mo ago[deleted]
- montenegrohugo 7mo agoReally neat. Immediately added to my own small blog: https://hugo0.com/wander https://hugo0.com/wander
- cal_dent 7mo agoCloudhiker.net has been doing this for a while too. Great to see more grassroot-ish attempt at expanding the web (or i guess more accurately returning it to its purpose)
- collabs 7mo agoI love the idea. One small thing - Ran into a problem almost immediately -- Nightly Can’t Open This Page To protect your security, drkhsh.at will not allow Nightly to display the page if another site has embedded it. To see this page, you need to open it in a new window.
- neuroelectron 7mo agoMy problem is I didn't understand what this was, refreshed the page and lost what i was reading to the ether.
- susam 7mo agoIf you are on a computer, you might be able to see the previous links that were loaded in your web browser's Developer Tools > Console. The Wander console tool writes logs there to describe what it is doing internally.
- susam 7mo agoThe drkhsh.at website does not allow itself to be embedded in another website: $ curl -sSI https://drkhsh.at/ | grep -i frame x-frame-options: SAMEORIGIN The problem appears to be that someone in the community added this website to their console even though it wouldn't load successfully. See also a similar discussion here: https://codeberg.org/susam/wander/issues/3 https://codeberg.org/susam/wander/issues/3 There is also a note in the project README requesting console owners to be mindful of this while adding links: https://codeberg.org/susam/wander#caution https://codeberg.org/susam/wander#caution
- pibaker 7mo agoI hope platforms like these find a way to attract people outside tech circles. I looked at around a dozen recommended sites and only two of them isn't the personal website of someone who works in tech and writes mostly about tech, which gets boring rather quickly. There is a world of non-tech bloggers writing stuffs about history, culture and nature who would likely never learn about this project simply because they are not in the right social spaces. I hope there is a way to have them in the ecosystem too.
- erxam 7mo agoIt doesn't seem very hard to implement in your own site, so it might gain some traction? It's not super-complex, I understand it is some sort of interconnected spin on webrings, which are still somewhat popular among small websites. If anybody wants to find truly random small websites, I recommend using Wiby (search engine). It has some neat stuff.
- pibaker 7mo ago> It doesn't seem very hard to implement in your own site Depends on how technically sophisticated the author is. Many of the blogs I was thinking about were not written by people familiar with web stuffs. They are hosted on managed hosting services like wordpress.com and blogspot, or on hosting providers with streamlined services that require no technical skills to use. Setting up this tool may very well be beyond what the authors are comfortable with or capable of.
- pipeline_peak 7mo agoAssuming you consider services like Wordpress and blogspot outside of the small web, people advocating that domain refuse to acknowledge why those services are successful to begin with. If being part of the small web requires technical expertise, it will always be limited to tech minded people who also happen to cook and play guitar.
- prox 7mo agoThere is also https://marginalia-search.com/ https://marginalia-search.com/ It has indexed lots of different websites categories
- SilverElfin 7mo agoI get an infinite loop of checking my connection and the page reloading, making it difficult to navigate back. Is this some kind of scammy site?
- rcakebread 7mo agohttps://gist.github.com/ryankearney/4146814 https://gist.github.com/ryankearney/4146814
- tannerc 7mo agoWow this is amazing! The experience and resulting websites are very refreshing. I feel inspired. Throwback to the StumbleUpon days.
- anonzzzies 7mo agoThis is really great! But my work day is ruined now.... Already found so many interesting things.
- seedpi 7mo ago[dead]
- shynome 7mo agocool,I like this
- pmontra 7mo agoBefore webrings and the very first directories and search engines, the tools for exploring the web were memory, bookmarks and the links sections of web sites.
- dannyfritz07 7mo agoAnd forums and word of mouth!
- steffs 7mo agoThe StumbleUpon comparison is apt but I think what made StumbleUpon work was the social layer: you could see what your friends upvoted, and that created an implicit filter against the pure randomness. Pure random discovery is fun for a session but gets old. Would love to see something like a lightweight trust graph here where a site vouching for other sites carries weight, similar to how Webring worked but with signal about quality rather than just affiliation.
- Heer_J 7mo ago[dead]
- korse 7mo agoThis is excellent. Thank you! I've now added it to my website (after restyling the console a bit to make everything match)!