Webrings with Openring

Webring Generated by Openring
Webring Generated by Openring

Lately my fascination has moved towards the IndieWeb. Maintaining your online identity and data independently of big corporations is Own and preserve your own data. My website has a simple webring at the bottom of every Readers can discover even more interesting content.

“Webrings allow ringbearers to create a network of blogs around a shared goal where readers can choose the next, previous, and random blog in the ring.” IndieWeb: What is a Webring?

Openring is a neat Openring is an open source program written in Golang that generates a webring from a series of RSS feed links. that allows you to generate a webring. Pass a series of RSS links as arguments to openring in addition to a template and it generates an html file that can be included anywhere on a web page. This is particularly nice for static site generators.

openring \
  -s https://example.com/feed1.xml \
  -s https://example.com/feed2.xml \
  -s https://example.com/feed3.xml \
< template.html \
> output.html

It’s a matter of making my own template and including it within my custom The original template is quickly adapted to use the Bulma CSS Framework.

<section class="webring">

  <h3>On the Web</h3>
  <section class="articles">
    <div class="columns is-tablet is-centered">
      {{ range .Articles }}
      <div class="column is-4">
        <div class="tile is-ancestor">
          <div class="tile is-parent">
            <article class="tile is-child box is-shadowless">
              <h2><a href="{{ .Link }}" target="_blank" rel="noopener" class="serif is-size-4">{{ .Title }}</a></h2>
              <p class="summary">{{ .Summary }}</p>
              <small class="source is-block">by <a href="{{ .SourceLink }}">{{ .SourceTitle }}</a></small>
              <small class="date has-text-grey-dark">{{ .Date | date }}</small>

  <p class="attribution has-text-right">Generated by <a href="https://git.sr.ht/~sircmpwn/openring">Open Ring</a></p>


This website uses Hugo to generate static content. It’s as simple as including the generated .html in the Go HTML template. Done.

{{- partial "openring.html" . -}}

Drone is a decent Drone is a continuous delivery tool that is super lightweight and highly flexible. tool. Add a configuration step to fetch openring and generate the webring on every build.

- name: openring
  image: debian:stretch-slim

  - chmod +x openring

  - >
      -s https://drewdevault.com/feed.xml
      -s https://mxb.dev/feed.xml
      -s https://www.taniarascia.com/rss.xml
    < generators/openring/template.html
    > generators/hugo/themes/tdro/layouts/partials/openring.html    

Openring is integrated into the website’s deployment pipeline. The build A precompiled binary is downloaded to demonstrate. A local binary would speed up this step considerably. is roughly 40 seconds. Not too We can compile the Go binary from source, but that would slow down the deployment process.

Drone Pipeline
Drone Pipeline

This was easy to integrate and as more knowledge is gained about the IndieWeb, new features will be added to the site.

17 August 2019 — Written
14 September 2020 — Updated
Thedro Neely — Creator
webrings-with-openring.md — Article

More Content


Web Ring



  1. https://thedroneely.com/git/
  2. https://thedroneely.com/
  3. https://thedroneely.com/posts/
  4. https://thedroneely.com/projects/
  5. https://thedroneely.com/about/
  6. https://thedroneely.com/contact/
  7. https://thedroneely.com/abstracts/
  8. https://ko-fi.com/thedroneely
  9. https://thedroneely.com/tags/indieweb/
  10. https://thedroneely.com/posts/webrings-with-openring/#isso-thread
  11. https://thedroneely.com/posts/rss.xml
  12. https://thedroneely.com/images/webrings-with-openring.png
  13. https://indieweb.org/
  14. https://indieweb.org/indiewebring
  15. https://git.sr.ht/~sircmpwn/openring
  16. https://go.dev/doc/
  17. https://thedroneely.com/posts/webrings-with-openring/#code-block-7342cc1
  18. https://bulma.io/
  19. https://thedroneely.com/posts/webrings-with-openring/#code-block-59ba8dc
  20. https://gohugo.io/
  21. https://thedroneely.com/posts/webrings-with-openring/#code-block-75fe2db
  22. https://github.com/drone/drone
  23. https://drone.io/
  24. https://thedroneely.com/posts/webrings-with-openring/#code-block-882ae5b
  25. https://thedroneely.com/images/drone-ci-webring.png
  26. https://www.thedroneely.com/posts/webrings-with-openring.md
  27. https://thedroneely.com/posts/extreme-ssh-hardening/
  28. https://thedroneely.com/posts/tweaking-the-bash-shell/
  29. https://thedroneely.com/posts/improving-paperless-interface/
  30. https://drewdevault.com/2022/11/12/In-praise-of-Plan-9.html
  31. https://drewdevault.com/
  32. https://mxb.dev/blog/the-indieweb-for-everyone/
  33. https://mxb.dev/
  34. https://www.taniarascia.com/simplifying-drag-and-drop/
  35. https://www.taniarascia.com/
  36. https://thedroneely.com/posts/webrings-with-openring#isso-thread
  37. https://thedroneely.com/posts/webrings-with-openring#code-block-7342cc1
  38. https://thedroneely.com/posts/webrings-with-openring#code-block-59ba8dc
  39. https://thedroneely.com/posts/webrings-with-openring#code-block-75fe2db
  40. https://thedroneely.com/posts/webrings-with-openring#code-block-882ae5b
  41. https://thedroneely.com/abstracts/aria-the-animation/
  42. https://thedroneely.com/abstracts/the-myth-of-the-rational-voter/
  43. https://thedroneely.com/archives/posts/
  44. https://thedroneely.com/posts/nixos-pins-and-needles/
  45. https://thedroneely.com/posts/tweaking-goaccess-for-analytics/
  46. https://thedroneely.com/posts/bitcoin-hacked-email-scam/
  47. https://drewdevault.com/2022/09/16/Open-source-matters.html
  48. https://mxb.dev/blog/make-free-stuff/
  49. https://thedroneely.com/sitemap.xml
  50. https://thedroneely.com/index.json
  51. https://thedroneely.com/resume/
  52. https://gitlab.com/tdro
  53. https://github.com/tdro
  54. https://codeberg.org/tdro
  55. https://thedroneely.com/analytics
  56. https://thedroneely.com/posts/webrings-with-openring#
  57. https://creativecommons.org/licenses/by-sa/2.0/
  58. https://thedroneely.com/git/thedroneely/thedroneely.com
  59. https://opensource.org/licenses/GPL-3.0
  60. https://www.thedroneely.com/
  61. https://thedroneely.com/posts/webrings-with-openring/#