Ramblings of General Geekery

Announcing SiloRider

Lately, I’ve been spending my free time making PieCrust (the static website generator powering this blog) support Indieweb things like Micropub and (incoming) Webmentions. But while being on the receiving end of things requires intimate knowledge of a CMS’ storage format, other Indieweb concepts put your website on the sending end, and that generally doesn’t rely on anything else than the final HTML markup… it’s therefore CMS-agnostic.

To implement that side of the Indieweb coin, I decided to write a new tool, independent of PieCrust: it’s called SiloRider1!

What it does right now is let you adopt the POSSE model with your website. After you’ve published a new article or post, you run SiloRider and it will syndicate (or “cross-post”) that out to “silo” services – right now it supports Twitter and Mastodon.

For instance, this recent update from my blog was syndicated like this on Twitter and like this on Mastodon:

In the future, it will probably send Webmentions out to websites you’re replying to, and other such things that can be done by parsing the just-published pages on your website.

In PieCrust, I integrate SiloRider simply by making my default publisher run a script that bakes the website, rsyncs it to the publicly served folder, and invokes SiloRider – this way, it works whether I post from a client app like Micro.blog’s iOS app, from the PieCrust admin panel, or after pushing my blog repo to my server (since I have a hook that runs that same publisher). You can similarly run it after your Hugo deployment, or whatever it is you use to make your website.

As with all my other projects, the documentation is up on BOLT80, and the code is available on GitHub and Bitbucket, depending on whether you prefer Git or Mercurial.


  1. It’s named like this mostly because I’m bad at naming things, and after
    spending a long time trying to come up with a name, I suddenly became very
    frightened I might take longer to name it than to code it, so I picked
    whatever popped in my head next. ↩︎