The PhoneBoy Blog


Simplifying Telecom, Mobile Phones, Gadgets, Health, and More!

A Self-Hosted WordPress Blog with Micro.Blog

** Update 25 September 2018 **

I have decided to discontinue using micro.blog as, while I like the concept, the implementation and the community are not what I’m looking for. I will leave this post up as-is in case it helps someone, but I currently have no plans to update it.

** Updated 28 May 2018 with tips for preventing Webmention spam **

** Updated 20 January 2018 with auto-linking mentions instructions **

** Updated 15 January 2018 with a better introduction **

I have to admit to being intrigued when Manton Reece was initially discussing his micro.blog project back in 2016 on the Core Intuition podcast. I did not participate in the Kickstarter at all, nor did I continue listening to Core Intuition in 2017 to track it that closely.

I did look into it a few weeks ago upon hearing about it from some people I interact with on other social networks. From their homepage, micro.blog describes themselves thus:

Today’s social networks are broken. Ads are everywhere. Hate and harassment are too common. Fake news spreads unchecked.

There’s a better way: a network of independent microblogs. Short posts like tweets but on your own web site that you control.

Micro.blog is a safe community for microblogs. A timeline to follow friends and discover new posts. Hosting built on open standards.

In many ways, it’s similar to more traditional services like Twitter or Plurk. To participate on the service, you join the service, which gives you the ability to create a profile, and respond to other people’s posts. There is also a Discover section where you can find other people using the service. So far, so good.

You can originate conversations on micro.blog in one of two ways:

  • On a micro.blog hosted microblog, which you pay $5/mo for the privilege of having. If you go this route, it’s effectively no different than Twitter, Plurk, or any number of similiar services.
  • On your own blog, which could be literally anything that spits out an RSS feed. This option is free, and is where things get confusing for some folks. It is also the route I chose.

My originating posts to micro.blog appear on a WordPress site I set up specifically for that purpose. I post to it just like any other blog. The native micro.blog clients for iOS and Mac interface directly with my WordPress blog, which means when I use them to post, it looks just like using a Twitter client. I can use any Micropub or WordPress client to post to my blog as well, which will cause a post to show up on micro.blog.

When I respond to posts on micro.blog, they are stored on micro.blog, exactly the same as if I was responding to a post on Plurk or Twitter. With a few additional steps, I’ve made it so the conversations around my micro.blog posts are imported as regular comments on my own blog.

The bad news, the process is not nearly as well documented as it should be. This blog post is an attempt at documenting this.

Tying WordPress into micro.blog

I’ll leave out the fun of installing WordPress, which has gotten easier over the years. I got a cheap webhosting deal with a provider that uses cPanel, which offers one-click installers for self-hosted WordPress sites. That takes a lot of the pain out of installing WordPress.

Note that I haven’t run personally in years because of all the security issues it tends to have, not to mention poor performance. However, for MicroBlogging, it might be the right choice. You could, of course, run this on wordpress.com if you prefer, but I’m not sure you can use the plugins that will be required for a seamless experience.

Once you have WordPress installed and configured, you can go into micro.blog account page and configure your blog URL. For WordPress sites, it’s usually siteurl/feed. You can see mine below.

My micro.blog account page

Once you done this, every post you make on this blog will show up in the micro.blog timeline. Posts should not have a title and should be under 280 characters. They can include images as well.

If you want to mention someone and have them notified in a post you originate on your blog, you can’t just simply use @username, but you need to also make that a link to the user with their micro.blog profile. For example: @PhoneBoy.

Mobile and Computer Apps

You can easily browse the timeline and respond to posts from any browser, but originating posts with a self-hosted microblog requires either WordPress, a native app, or a Micropub-compatible app (see next section to enable this).

The only mobile app right now is the one that Manton wrote for iOS. Likewise, the only native desktop app for micro.blog is for the Mac. Given Manton is an iOS and Mac developer, the lack of Windows and/or Android options is not shocking. Even the apps Manton didn’t write are Mac ones.

What About Replies?

When you reply to a post on micro.blog (either with the website or a native app), the reply is actually hosted on micro.blog. This means they will not show up on your WordPress blog unless you’ve set up a few things…and this is where there isn’t a lot of documentation.

Before doing anything, activate this plugin, which will be needed to filter spam:

Akismet Plugin

Yes, this will require a “subscription.” You can optionally pay, but also get it for free.

Next, you will need to install a couple of plugins. Specifically, the Semantic-Linkbacks and Webmention ones, shown below:

WordPress Plugins needed for micro.blog

The Micropub plugin is also useful to support additional third party apps, as noted in the previous section. This is why it is highlighted above.

Webmention allow you to send and receive a signal that micro.blog uses to handle mentions. Specifically, when someone mentions you, it lets your hosted microblog know that happened and can even create a comment. Unfortunately, that comment is not very useful:

Webmention Comment without Semantic Linkbacks

Semantic-Linkbacks is the plugin that will read that Webmention and turn it into a comment on your blog:

Webmention Comment with Semantic Linkbacks

Now you can follow the entire conversation from my site without having to use micro.blog at all. All the comments are imported and shown on my site. Not only do I have my own content that I originate, I have the conversation around it as well.

It should be noted that comments do not appear right away, but only after a delay. I’m not sure exactly what the delay is, but it seems to be up to a half-hour.

But Those Imported Comments are Moderated

Yes they are, which is problematic because it creates something that needs to be maintained. If you’re ok with periodically going into your site and approving the comments, fine. If you’re not, then you should have a way to automatically approve most comments.

This requires two steps. First, you need to put the following lines at the end of the functions.php file for your theme (in wp-content/themes/yourthemename):

if ( !function_exists('indieweb_check_webmention') ) {
/**
 * Using the webmention_source_url, approve webmentions that have been received from previously-
 * approved domains. For example, once you approve a webmention from http://example.com/post,
 * future webmentions from http://example.com will be automatically approved.
 * Recommend placing in your theme's functions.php
 *
 * Based on check_comment()
 * @see https://core.trac.wordpress.org/browser/tags/4.9/src/wp-includes/comment.php#L113
 */
	function indieweb_check_webmention($approved, $commentdata) {
		global $wpdb;
		if ( 1 == get_option('comment_whitelist')) {
			if ( !empty($commentdata['comment_meta']['webmention_source_url']) ) {
				$like_domain = sprintf('%s://%s%%', parse_url($commentdata['comment_meta']['webmention_source_url'], PHP_URL_SCHEME), parse_url($commentdata['comment_meta']['webmention_source_url'], PHP_URL_HOST));
				$ok_to_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_approved FROM $wpdb->comments WHERE comment_author = %s AND comment_author_url LIKE %s AND comment_approved = '1' LIMIT 1", $commentdata['comment_author'], $like_domain ) );
				if ( 1 == $ok_to_comment ) {
					return 1;
				}
			}
		}
		return $approved;
	}
	add_filter('pre_comment_approved', 'indieweb_check_webmention', '99', 2);
}

Second, you need to make sure your Discussion Settings will allow the comments to be auto-approved:

WordPress Discussion Settings

Between the two changes plus enabling Akismet, when people interact with my posts on micro.blog, they show up as comments on my site that are auto-approved unless:

  1. They are using a domain that I haven’t seen before (i.e. It’s not micro.blog)
  2. Akismet thinks the comment is spam

Mentioning Others in Originating Posts

Mentions are only linked on micro.blog is there is an HTML link in the status update to the relevant username. Since those are a pain to remember to do, much less type, you probably want to automate this. There are two approaches to this, both of which I’ve linked below.

Was This Worth Doing?

For me, the jury is still out on whether or not this was all worth doing or not. Because the potential audience is relatively small, namely people who are some combination of:

  • Mac/iOS/IndieWeb centric
  • Technical enough to set up their own blog
  • Willing to give Manton Reece $5/mo

The diversity of participants and resulting conversations are somewhat limited and are likely to remain so. This might suit some people just fine, but I appreciate people of different races, creeds, colors, economic backgrounds, and even those with differing political opinions. The kind of people you might find on a more mainstream social media service or the right Mastodon instance.

Keep in mind just because you host your own content doesn’t mean you can do what you want if you want to participate in the micro.blog community. While I have no intention of violating the community guidelines, the way “abuse” gets treated is very much the same way Twitter and Facebook handle it:

The primary focus of the community guidelines will be replies posted to other Micro.blog users. Many great friendships and interesting conversations can start as an @-reply. We are committed to making Micro.blog a place where these interactions can happen. Unfortunately, abuse and harassment frequently come in the form of an @-reply from someone you don’t follow.

To combat this type of abuse and harassment, Micro.blog has a feature called Safe Replies. Safe Replies attempts to automatically catch potentially harmful replies to you from people you do not follow. We use this to help filter posts out of your timeline that you may not want to see.

We may also curate replies to protect users when emerging problems are not automatically flagged. Replies will be subject to the basic community guidelines below. They will also be subject to review if flagged by Safe Replies or reported to the community manager by other users.

I highlight this because while you may be escaping the toxicness that exists on Facebook and Twitter by using micro.blog, you are not escaping oversight of your communications. You are merely changing who is performing that oversight.

All of this said, if micro.blog were to go away tomorrow, or for some reason if I was banned from the service, I’d still have all my posts and the conversation around them in a usable format with zero work on my part. Obviously any conversations I had with others around their posts may or may not be available depending on what they’ve done (or not).

I’m going to continue using it for the time being, because it’s something new and shiny to play with. Is it going to change the world? Probably not, because the potential audience at the moment is a bit too small.


#Cybersecurity Evangelist, Podcaster, #noagenda Producer, Frequenter of shiny metal tubes, Expressor of personal opinions, and of course, a coffee achiever.