I’ve been thinking that forming a webring of Haskell blogs could be quite cool.
A webring (or web ring) is a collection of websites linked together in a circular structure, and usually organized around a specific theme, often educational or social. They were popular in the 1990s and early 2000s, particularly among amateur websites.
Having a Haskell webring means that
- There is a curated list of members of the webring (who applied to join), which doubles as an index of curated Haskell blogs
- Blogs which are members of the webring have links to the next and to the previous blog in the ring, and possibly a link to the index too (e.g. in the footer)
In practice, this means readers can traverse the ring to discover other haskell blogs. I think, in general, it is a good thing in terms of visibility, connectivity and community building.
How do we form a webring?
I’ve considered a few designs for the webring functionalities, i.e. how to determine the previous and next blogs, while keeping the ring a ring and how exactly do we link to them?
With one constraint: The webring functionality shouldn’t need javascript, to not incur in a runtime dependency for blogs which likely don’t need any JS.
I think the best solution is for
- the next and prev links to simply point to a hypothetical
webring.haskell.org/next
andwebring.haskell.org/prev
. - the
webring.haskell.org
hosts a webserver which redirects requests to/next
and/prev
to the “correct” neighbours based on the Referrer HTTP header, which essentially indicates the website which reffered to those urls. - this puts the complexity of managing the ring on the webring server, which seems fitting.
- we can easily shuffle the ring member order
An alternative solution is to
- have a Hakyll module which determines the neighbours $prev$ and $next$
- and links point to the concrete $prev$ and $next$ blogs
- this shifts the complexity to the build system
- and will be stale more easily, since new members won’t be pointed to by old members until the old members rebuild the site
- this is not that bad
- since the main index will still have an updated list of members
- the ring for any particular blog is a snapshot of the ring at time the blog was built
- likely better for SEO to point to exact links
How do members join?
I would say doing membership through MRs to a git repository is the simple and straightforward way.
However, hosting the membership in a public repository somewhat restricts us in collecting e-mails to contact site maintainers, since not everyone might want to make it available publicly in the repo. Though we could have a separate form for this.
Eventually, if we ever wanted to have a test that crawls through the ring to see if it is connected or, otherwise, notify maintainers that the ring is broken to (1) fix the links or (2) temporarily leave the ring (this would only be reasonable with the first solution), not having the webmasters’ contact information would make it harder.
Ultimately, however, I don’t think these details about contacting sites are too important, as we won’t likely need to be so strict wrt to members, and can otherwise take other actions?
Who maintains the webring?
- Group of trusted volunteers who would be added as maintainers to the membership repository
- or perhaps the Haskell Foundation?
Well, those are my thoughts on it.
@nomeata @tristanC @ApothecaLabs @Solid @jaspervdj @abhin4v you’ve recently posted articles from your blogs, do you have any thoughts?
Has the @haskell-foundation any thoughts too?