IndieWeb on WordPress

I have had a web presence since about 2001. Initially, I set up a blog using Radio Userland but quickly abandoned that when Google launched Blogger. I then jumped to Tumblr then back to Blogger. But it wasn’t until 2005 that I finally registered a domain,, and started hosting my online presence, my “house”, on WordPress.

The reasons were many but mainly I wanted to control all the various aspects of my “house”. I wanted to choose where it was constructed. I wanted to choose what materials were used to build it. I wanted to choose the paint on the walls and the furniture etc.

On Tumblr and Blogger, I was limited to what the landlord allowed me to use. On those platforms, I get to choose the address but little else. I wanted choice and WordPress and a hosting provider gave me that choice. The site has moved around a bit in terms of where it’s hosted. It was originally hosted on a cheaply shared hosting provider but a few years ago I switched to a virtual private server ( I wanted more control ). Back in the day, when I had much free time, I compiled my instance of Apache, and PHP, etc. (and Perl where needed) from source but since my family became a priority, I’ve just settled on securely configuring and securing the default builds provided with the VPS.

I have always wanted to post first on my own site and syndicated my content elsewhere. I want my website to be the original source of my content and have that content shared to third-party sites like Google+, Facebook, Twitter, Instagram, and Flickr with a link back to the source. But I didn't know how. Unless the launch of JetPack I manually posted links to Twitter, Facebook, Linkedin, and Google+. JetPack saved me from the manual effort of posting links to social media silos. However, JetPack couldn't post to Instagram or Flickr.

Up until recently I just went about doing my thing. Then recently I discovered the IndieWeb via a Kickstarter project. and IndieWeb

Last year I backed Manton Reece’s project on Kickstarter. Something about the project’s goal resonated with me.

Do you remember how the web used to work? How was the web supposed to work?

In the earlier days of the web, we always published to our own website. If you weren’t happy with your web host, or they went out of business, you could move your files and your domain name, and nothing would break.

Today, most writing instead goes into a small number of centralized social networking sites, where you can’t move your content, advertisements and fake news are everywhere, and if one of these sites fails, your content disappears from the internet. Too many sites have gone away and taken our posts and photos with them.

I want to encourage more independent writing. To do that, we need better tools that embrace microblogs and the advantages of the open web. We need to learn from the success and user experience of social networking but applied to the full scope of the web. Kickstarter project page mentioned something about IndieWebCamp and W3C proposals for indie microblogging, such as Webmention and Micropub but I didn’t pay much attention to that until recently. I started following some of the post on and stumbled onto a post by Chris Aldrich that had me reading a lot of Chris’s post on the IndieWeb one of which linked back to a introduction to the IndieWeb on AltPlatform. After reading that post I visited the IndieWeb wiki and went down a rabbit hole of information. As I read, I kept nodding my head, “Yes, we need this. I have to do this.“


I started where it made sense to start. On the Getting Started on WordPress page. I was well established for an out of the box WordPress setup. I read the section about microformats and themes and about IndieMark and installed the IndieWeb plugin. The IndieWeb plugin Getting Started page suggested that I install additional plugins. I was excited about the prospect of sending and receive comments and likes using my own site. I installed the following without quite understanding how they worked but they were listed as required.

  • Webmention (Required) - allows you to send and receive by adding webmention support to WordPress. Mentions show up as comments on your site.
  • Semantic Linkbacks (Required) - makes IndieWeb comments and mentions look better on your site.
  • Post Kinds - Allows you to reply/like/RSVP etc to another site from your own, by adding support for kinds of posts to WordPress.
  • Bridgy

Sending and Receiving responses

It took me a few weeks of experimentation to understand that I could post a response to someone else’s blog post by writing a post on my own website, and then linking the the response back to their post by either posting a link to my response into the Webmention comment field on the other person website, or using Webmention plugin to do that for me when I write my response. My WordPress site already used the built-in pingback and trackbacks but the Webmention and Semantic Linkbacks plugins bring this to a new level.

  • Bridgy Publish - Adds a user interface for using Bridgy to publish to other sites
  • Syndication Links - Adds fields to a post to allow manual entry of syndication links as well as automatically from a supported syndication plugin.

The first time I saw the result of the combination of Webmentions, Semantic Linkbacks, Bridgy and Post Kinds I was hooked. I wish I had discovered these plugins sooner. When I tweet out a link to a post and someone tweets a response to that post, the tweet is imported to my originating post. My tweet response to that tweet is also imported. I find that useful and just darn cool. There are a few challenges, however.

The conversation is not threaded and sometimes tweets are duplicated. Using Webmentions also means disabling the Jetpack Comments system I had been using on my blog. I suspect this is going to create a problem for people who are used to leaving comments on my blog using their, Google+, Twitter and Facebook profiles. The other problem I ran into was that certain characters broke the way that the Semantic Linkbacks plugin acquired information. Chris helped me work through some of these early problems.

With Bridgy my website is able to discover the post as well as for end users to comment on those sites as a way of replying.


Instagram and Flickr

For Instagram and Flickr I had no solution. I have been posting content on Flickr and Instagram independently of what was posted on my site. At one point I started using a plugin to embed Instagram and Flickr content to my site. But I eventually abandoned that. Posting on Instagram or Flickr first and then embedding into my site made my site dependent on those services. I have made the mistake of removing images from Flickr only to find out that I had used the embed in a blog post. Each time Instagram changed their terms of service to something with which I disagreed, I would delete my account. I am on my third Instagram account. I have a lot of image posts with missing content.

I set up Ownyourgram and OwnYourCheckin to push my Instagram posts and FourSquare check-ins back to my website. The idea was to use the Instagram and Foursquare apps as mobile publishing clients for my website. It works but I am not happy with the result. The check-ins are badly formatted and the image size is too small for the design of my blog (width of 1200px) and the URL slugs were ugly: e.g.

. Foursquare images are 584 x 274. That looks fine in Independent Publisher but looks like shit on wider themes.

I also sometimes get weird and random errors from OwnYourCheckin and OwnYourGram has been pushing old posts back to my website. I have disabled both services.

Instead, I opted to use the NextScripts: Social Networks Auto-Poster WordPress plugin. I configured the SNAP plugin to automatically publishes posts from my blog to my Instagram, Flickr, Facebook, Twitter, Google+(Google Plus), Flipboard and WordPress. Publishing to Google+, Flipboard and Instagram require a paid subscription to an API service. That's a potential downside but for now, it works and works well. When I write a new post a nicely formatted announcement with backlink is published to all my configured social networks. I configured a filter so that only image posts are sent to 500px, Flickr and Instagram. Honestly, I subscribed to the ability to post to Instagram.

One unexpected benefit is that SNAP auto-imports comments and replies from Facebook and Twitter as WordPress Comments.

Undefined property: stdClass::$checkins


The wiki suggested that setting up micro formats would help so I installed David Shanske's WordPress microformats2 plug-in to add o markup structured information into my sites HTML.

Early Problems

I reached out to Chris Aldrich for help and also to test some of the new functionality of my website. Most of Chris's responses/webmentions went to spam. I have used Akismet for years and it has reliably blocked all spam while allowing legitimate comments. I do not want to put in the effort to review Akismet, skipping past the hundreds of spam just to clear webmentions.


I had some problems that I might have expected had I first read this bit of text by Michael Bishop.

The gist of my observation in setting up WP is that the lack of mf2 and emphasis on theme supporting them. I approached setting WP up as a new user, and what my goal would be, POSSE to a silo (Twitter) probably would be the 1st step. Installed the webmention plugins, set up bridgy, and it failed due to lack of mf2 support(latest WP theme, 2016). If I wasn't already familiar with these steps, it would be discouraging, and some (most?) might delete the plugins and move on, not knowing why it didn't post to Twitter. The failure was fairly silent without reading the raw JSON on bridgy.

Currently, the theme section is way down the page and doesn't emphasise the importance of mf2. Only one theme is linked, along with a plugin that seems geared towards a commercial framework, Genesis is mentioned.

I know GWG is working on improvements to the IndieWeb plugin, but right now it's emphasized in the wiki. It just directs people to download 10 more plugins, without doing anything. The ala carte plugins might be great for a seasoned user who wants choices to build IndieWeb into their existing site, but for someone just setting up WP, it's overwhelming. 2 plugins for Webmentions doesn't make sense.

Currently, SemPress is the only theme in the WordPress repository that is fully microformats2 compliant. Independent Publisher has been updated to include basic microformats2 and webmention display support but I don't like the design and how it handles image posts and some microformat entities.

The display issue was that some h-cards displayed in HTML. Hardly conducive to the polished look I want for my website. SemPress doesn't work for needs. I want my featured images displayed large along with the remainder of my post images. Independent Publisher is a beginner theme at best. I have only a passing interested in learning enough CSS to build my own theme. However, I wouldn't mind using my knowledge of PHP to do some WordPress tweaking. But the IndieWeb ecosystem of plugins needs to work out of the box with the majority of popular WordPress themes. Not just two.


I ran into an issue using IndieAuth. I have been using an Adobe Lightroom plug-in from Automattic to export images directly from Lightroom to this self-hosted WordPress blog. It worked flawlessly up until recently. Shortly after I installed and setup the IndieAuth WordPress plugin, the Lightroom export plugin started throwing errors and failed to export to WordPress. Exporting to my other WordPress blogs worked fine. After enabling and disabling plugins I determined that the issue was with the IndieAuth plug-in. That made sense because that was the latest WordPress plug-in I installed and enabled. When I disabled the IndieAuth WordPress plug-in, the Lightroom plug-in exported images without issues. I don’t see anything in the apache error logs. I would really like to use IndieAuth. What can I do to troubleshoot this?

Next Steps

I also want to post my Untappd check-ins first to my site — image, text, location, rating, etc. — and have my site create the Untappd entries along with images and other relevant information.


  • Syndicating content to Mastodon, an alternative to Twitter.

Mastodon is a free, open-sourced messaging platform that's decentralized in the extreme (more on that later) and, since it lacks an SMS heritage, does not have a 140-character limit — 500 characters are just fine. It also offers public accounts, lots of post-level privacy controls and fully chronological timelines.

You Might Also Like

  • William Francis Bennett
    3rd December 2017 at 9:35 PM

    Khürt Williams shares his WordPress and Indieweb. Would be helpful for anyone else interested in rolling their own…

    I’d love to see how he includes in the mix… if he does.…

  • Bill Bennett
    3rd December 2017 at 9:31 PM

    I'd be interested to know how you are weaving and WordPress together... if that's what you're doing.

    • Khürt Williams
      7th February 2018 at 8:32 AM

      I've not figured out the "why" of using Despite the name, also supports long form posts. I'm already using WordPress for that so for me, is more of an alternative to Twitter. But ... I also useTwitter but with more diversity in the stream ( seems to attract mostly software/developer nerds and writers).

      I've been thinking about this and perhaps I just need a way to use WordPress to push/pull short form posts to twitter?

      As for weaving and WordPress together (which is what I am trying to do) ...

      You can post to WordPress directly from the iOS app for Tap Settings inside the app and choose “WordPress or compatible weblog”. Next time you start a new post, will prompt to enter your WordPress URL and credentials. Setting up WordPress

      Take a look at what Chris Aldrich is doing on his WordPress site.

  • Bill Bennett
    3rd December 2017 at 9:29 PM

    Helpful post for anyone planning to go Indieweb with WordPress… via @khurtwilliams

  • Martin McCallion
    29th November 2017 at 7:00 AM

    Good post. I'm also still struggling with getting my blog to both look and behave the way I want. No theme is exactly right. Which theme did you go with in the end? Yours doesn't look familiar to me.

    • Khürt Williams
      29th November 2017 at 1:27 PM

      Hi Martin.

      I am using the free Verbosa theme.

      it's not perfect. I am currently working on fixing how it handles certain microformats. The Author section at the botton of the post shows the h-card markup,

      Author: <span class='p-author h-card'>Khürt Williams</span>

      . Not what I want.

      I am experimenting with the free version of Satisfy but I am not quite happy with that either.

      The struggle with getting the aesthetics of the blog just the way I want is pushing me to want to re-learn CSS and WordPress development. 🙂

  • Scott Kingery
    28th November 2017 at 4:28 PM,2013:935393113010470913_favorited_by_3983451

    Scott Kingery

  • Grant Potter
    28th November 2017 at 4:09 PM

    IndieWeb on #WordPress #posse #webmentions:…

  • Michael Bishop
    28th November 2017 at 7:19 AM

    Khürt does a great job of sharing his experiences with WordPress and IndieWeb, and is an inspiration to continue working on the theme I’ve been toiling with the past year.

    Syndication Links :

  • Chris Aldrich
    27th November 2017 at 8:14 AM

    IndieWeb on WordPress by Khürt Williams (Island in the Net) I have had a web presence since about 2001. Initially, I set up a blog using Radio Userland but quickly abandoned that when Google launched Blogger. I then jumped to Tumblr then back to Blogger. But it wasn’t until 2005 that I finally registered a domain,, and started hosting my online presence, my “house”, on WordPress. One of my favorite IndieWeb quotes thus far, and certainly a sentiment I’ve had many times:
    I visited the IndieWeb wiki and went down a rabbit hole of information. As I read, I kept nodding my head, “Yes, we need this. I have to do this.”
    Khürt also highlights another good reason for IndieWeb:
    Each time Instagram changed their terms of service to something with which I disagreed, I would delete my account. I am on my third Instagram account. I have a lot of image posts with missing content.
    Despite some of the problems people have in getting some IndieWeb technology to work the way it could, I’m very heartened by people like Khürt Williams who see the value of it to the extent that they’ll struggle through the UX/UI issues (which are ever improving through the herculean efforts of so many in the community) to make it work for them.
    Since Khürt may not be following developments as closely, I’ll briefly mention that the overhead involved for owning your Instagram posts and FourSquare/Swarm posts is coming along with efforts like Aaron Parecki’s OwnYourGram and OwnYourSwarm. David Shanske has been working diligently on updating some of the workflow for the Post Kinds plugin to work better with checkins and locations for FourSquare/Swarm. For WordPress specific users who want an alternate Instagram option that uses a PESOS syndicaton/ crossposting model, I’ve also found some excellent results with the DsgnWrks Instagram Importer, which provides a bit more WordPress specific data and integrates wonderfully with David Shanske’s Simple Location plugin.
    I’m hoping that Michael Bishop’s idea of doing weekly updates on WordPress specific IndieWeb updates will help those who are interested in keeping up with movement in the community without needing to read the chat logs or GitHub updates regularly.
    As for the issue of Akismet spam and Webmentions, this is a known problem that Akismet is aware of and hopefully working on. In the meantime, there’s a documented work around that will fix the issue that has (in the practice of several hundred people using it) an exceedingly low rate of allowing spam through.?????
    Syndicated copies to:

    Syndication Links :

1 2
%d bloggers like this: