Graycot / loop-ring

GNU General Public License v3.0
10 stars 22 forks source link

CREATE Loop Ring WebRing surfer page on index.html of webring domain #12

Open Graycot opened 1 year ago

Graycot commented 1 year ago

Feature Description:

A webpage hosted on the loop.graycot.dev subdomain at index.html

The webpage will include a small-ish banner at the top of the page providing navigation options. These options will be identical to the loop ring widget that member sites place on their webpages, though it will be formatted in an aesthetically pleasing maner. Navigation buttons such as previous site, member list, loop ring home, random site, and next site will be visible. The majority of the webpage will be an iframe containing the currently viewed member site. The goal of the web ring surfer is to allow quick and easy browsing through member sites of the web ring without requiring the visitor to hunt down the loop ring widget which is in various locations and formatted differently on member sites. The banner will stay constant at the top while the rest of the page reacts to the visitor using the navigation buttons.

Potential issues

Iframes can be difficult to work with, and some sites may refuse to be embedded into the web ring surfer by Iframe. Should embed-ability be a requirement to join the ring? I don't think so. I'd rather detect "broken" sites such as those that refuse remote embedding and just skip them in the webring surfer.

Legacy webring widgets

I have no intention of depreciating the current mechanism of webring widgets. Rather, I intend the web ring surfer to complement the widget system and allow more variety in how visitors can explore the webring and it's member sites.

Upstream

Once a working implemenation has been created and I am satisfied with the ring master documentation, I will port the change to the upstream O-ring repository so that other webring creators can take advantage of this tool and enhance their webrings.

Graycot commented 1 year ago

Progress is slow but steady. I'm considering if I want to use the browser's local cache to store the position of the visitor within the loop ring on the loop ring surfer. This way they could leave, come back, and the browser won't loose their place.

but then I realized, few people will ever notice or care about the feature. Is it necessary, or just complexity for the sake of complexity?

It would make a good learning tool because I don't have experience with storing in local cache. Perhaps I'll consider implementing this feature after I get a working prototype that is functionally complete.

Graycot commented 1 year ago

I have a minimum viable prototype of the web surfer. The current hurdle I face is in regards to websites that block being embedded into other websites. I do not want to force allowing embed on member sites, as that directly conflicts with the core ethos of this project. Member sites should have the right to agency, to style the widget, and to easily audit the JS they link to.

Creating a way to detect if a website blocks embeds should be possible on client side. Dare I say, knock on wood, perhaps easy. Now my concern is how to proceed. If a visitor is using the web surfer and the surfer detects a website with embeds disabled, do I just skip the anti-embed website, or do I create a notification message explaining the embed block and include a direct link to the website?

I'm currently leaning towards skipping the website, as it'll be a much cleaner experience for the web surfer visitor. A publicly accessible version of the surfer page doesn't even exist yet, so I doubt it skipping the occasional website will be detrimental to their share of webring traffic. Those websites can opt back into the surfer by enabling embeds.