This will be a long post so I will put the TL;DR stuff right up top.
I am trying to reclaim my blog as the center of my online life, rather than various social media sites.
When I found out about the IndieWeb POSSE philosophy, it resonated with me. I’ve felt like this over the years, and this crystallized my thinking.
I am using WordPress plugins to push my posts out to social media and Brid.gy to bring that activity back to this blog.
I first ran across the concept of POSSE (Publish Own Site, Syndicate Everywhere) in an episode of In Beta on the 5by5 podcast network. The basic idea is to set up a system where a site you own (typically a blog) is the origination point of your online activity, and from there it propagates outward to whatever social media sites you care about. This struck a chord in me, because I have watched myself following the same pattern as almost all the early 2000s era bloggers: blogging slowing or ceasing while all that activity moved to Facebook, Twitter, Google+, et al.
The concept is that by putting your site as the central primary point of activity, you retain ownership of everything. There are horror stories of people losing their Twitter or Facebook accounts and then losing years and years of their history in a flash. I have somewhat mitigated that problem by having a self-hosted version of ThinkUp running and faithfully gathering my social media information. (Interesting aside, Gina Trapani the developer of ThinkUp was the original cohost of In Beta.) This helps somewhat, but is a reactive rather than proactive solution. It doesn’t solve the fragmentation problem, and it doesn’t solve the “loss of blog mojo” problem.
Given that I like the idea of owning my whole stream, collecting it in a central canonical place with all activity pushing back to it, this whole thing seems like a natural fit for me. Of course, like all similar situations (think podcasting in fall 2004), there is not yet an off-the-shelf product to do this. It is time for a series of rickety Rube Goldberg devices! Yay, fun!
This is the extremely early days of this concept, so everything is in flux. Also, I’m only a few days into this exploration so this is an ongoing research project. All of this is subject to change and certainly some parts of it will over time. This blog post itself should be an example of my own dog food being eaten. I’ll start with the activity flowing back to the blog, as this is trickier. The pushing out is pretty straightforward.
Note too that every bit of this is in the context of a self-hosted WordPress blog. The ins and outs will be different for other blogging tools.
Step 1: Webmentions
The first prerequisite for the whole thing was the trickiest bit for me, getting webmention support onto this WordPress blog. It requires installing the webmention and semantic-pingback plugins and then doing some configuration. Every profile you want to connect to your blog needs to have a link back to your blog in it, as the tools use this information for security. This page details how to do it. Learn from my mistakes and verify that you can receive webmentions via this test tool before you hook anything else up. I’d have gotten a lot of automatic coolness if I had.
Step 2: Backfeed
Backfeed is the idea of pulling the activity back to your own site. This page details the concepts and some tools. I opted to use Brid.gy because although it isn’t perfect it does pull back likes, favorites and things like that in addition to comments. I’ll discuss the ramifications of this decision later.
Go to Brid.gy and connect your target profiles. It can pull back your activity from Facebook, Twitter, Google+ and Instagram. This is simple and familiar if you have ever approved third-party apps for you accounts before. If you have things working correctly and have activity on posts that link to your blog posts, you will immediately see this activity hit your blog like magic. It goes without saying that if you want to see the magic, you should have some active posts that point to your blog before you hook this up. It will be a tad anti-climactic otherwise.
Once I got it working, I made a test post that I put on Twitter, Facebook and Google+ asking people to interact with it. The result is pretty phenomenal, you can see it on this post.
Step 3: Pushing out (The SE, Syndicate Everywhere part)
There are multiple options for this. The simplest and easiest option for most people would be to use the Social->Publicize function of the Jetpack plugin from WordPress.com. Many, possibly most, WordPress blogs already have this. I chose to go with the SNAP plugin (Social Network Auto-Poster). This is because I’d like the full text of my posts to push out. That doesn’t seem possible with Jetpack, which automatically truncates. SNAP is highly configurable and will allow you to write your own template for each connected social media site. It’s not perfect, I’ll discuss that later as well. If you are seeing this post on any social media sites, then it worked. What you see is what it did.
For the backfeed functionality, the dependence on Brid.gy is a point of failure. I have taken all the external dependencies of social media sites and collected all that into one big external dependency. Because of the way the webmentions work, the details of the information are contained in a Brid.gy url. Although the comments live in my blog, they are not useful without this external service. That service is free, maintained by a single guy as a labor of love and subject to shutdown at any time. It might also get overloaded, destroyed or subject to any manner of mayhem. If any of that happens, the comments that pushed to my site will be useless.
Also, in my short experience the working of Brid.gy is not 100%. Some fraction, about 5-10% of the attempts to push webmentions just fail. I don’t know why, if I look at the web page for my account I see a failure message with no further details or way to retry. Apparently, that is just it. If it fails, the whole game is over. Again, if I had some control over this process I would be able to at least look at logs. As it is now, if the Brid.gy black box fails, I don’t get to look inside.
A problem with SNAP is that while it pushes to Facebook, Twitter and a lot of others in the free version, if you desire Google+ integration (which I do) it requires the paid plugin. Worse, you will not find out until after you try to hook it up (like I did) that the plugin in incompatible with two-step authentication which I do have on my Google account. The developer seems resistant to making it work with that, and this is an important thing for me. Jetpack works with two-factor authentication but somehow the SNAP developer claims it is impossible for him. For testing purposes I’m turning off two-step for now, but there is a hard decision in my future.
To make this work better, I’d love to see my dependency on Brid.gy replaced by one to my self-hosted ThinkUp install. ThinkUp is already crawling my social media streams and recording all my activity. It seems like a pretty small effort to write a plugin to push a webmention in just the same way that Brid.gy does. That way, although I have an external dependency in my blog it is to a thing I own. Since this whole IndieWeb thing is about control, that seems philosphically better and more consistent to me.
It would be preferential to find a system that could push posts to every social media system I want it propagated to, in exactly the manner and format I choose, without changing my security settings. Whether this is pushing existing vendors to change their tools (like adding templating to Jetpack or two-step support to SNAP) or creating new tools (ugh, not by me) if these existed and were easily available off the shelf then this whole thing would be more of a product and less of a kit car with a zillion pieces.
I am pursuing this as an ongoing project. I like the ethos, and I like the result. Twelve years ago, I made a dozen small blog posts a day not unlike how people currently use Facebook or Twitter. There is no reason I can’t return to that. I like this blog being the center of everything and the social media posts being the second-class citizens, rather than the other way around. I have it set up that via IFTTT rules I can originate a post in Google+ and have it push to Twitter, Facebook or back to this blog. Ultimately though, that is rewarding bad behavior. Just because three years in, Google+ still does not provide a write API does not mean they should be the primary position in my life. I’ll take the hits to make this work, and will continue to post on this topic as I refine my system. I hope that just like early podcasting, people will take the rickety systems and build more solid ones so that eventually, there is just a button to push or a thing to install (or pay for) and the whole thing is done. May it be so, world without end. Amen.