Micro.blog

Just under a year ago I wrote about my love/hate relationship with social media and microblogging in particular. Since that post, I’ve stayed away from Mastodon but was a fairly heavy (relatively speaking) Bluesky user. While I like Bluesky, there remain two problems endemic to social media platforms like it:

  1. It’s difficult to regulate the content you see, especially if the content you want to see varies depending on when you look. For example, at some instances I may not want to see political content while at other times I may want to do so. Constantly juggling muted terms is a pain, and no mute list is perfect.
  2. Similar to using something like Medium for writing versus my own blog, you don’t really own the content you post there. While I don’t frequently go back to reference old social media posts in the same way that I often do with blog posts, it’s still an occasional sore spot for me, especially for photos at events and other things.

My predominant reason for soldiering on with social media at the time of my post from a year ago was that I wanted the wealth of information social media offered me. That’s only grown to be more true as Bluesky has achieved greater popularity; it’s expanded beyond the realm of tech news to also having a wide swath of sports information available. Despite this, however, over the past few months I found myself using Bluesky less and less for this information as I started looking more at Reddit. By its very nature, Reddit makes it very easy for me to follow the exact communities that I want. While there’s plenty of toxicity on the platform, you as the user have a lot of agency to determine if you’re a part of those particular communities or not; the worst thing I generally have to deal with are Kansas City Chiefs fans coming into the NFLv2 sub-Reddit.

Without a need to use social media for news, though, I still wanted to have something that I could use for posting random thoughts online that didn’t warrant a full blog post, pictures, etc. I wanted to use something that I had more control over but that was still relatively easy to use for quick posts.

Exploration

My first thought was to explore the possibility of making another blog on this very site and simply using WordPress. I messed around with a few options, though, and I couldn’t come up with anything that I liked natively in WordPress. Similarly, I looked around at some plugin options and wasn’t able to find anything I liked.

My next thought was to use Write.as for this. I’ve blogged there previously, though I ultimately decided that I liked having a full site better and opted back to WordPress. Write.as lends itself fairly well to microblogging, and posts show up quite well if you just throw some text in there with no title. The main pain point, though, is that working with images can be a little awkward. I have to upload them to Snap.as and then put a link into the Markdown for my post. It’s not the worst thing ever, but it’s still a hassle. Photos were also the reason why I didn’t really consider just trying to make my own little frontend on top of Hugo. Trying to upload, manage, and link them properly is annoying enough when I’ve used Hugo as a full blog; I couldn’t imagine wanting to deal with it from my phone without significant investment in building something to sit on top of it.

Micro.blog: The Start

I’ve been familiar with Micro.blog for years but never used it myself. The price wasn’t bad (currently $5 USD per month), but was more than I wanted to pay just to share my own little random posts. Then they started a “Micro.one” offering that has slightly less features but for only $1 USD per month. The biggest differences are:

  • No video hosting
  • No custom themes*
  • No automatic cross-posting to Mastodon, Threads, Bluesky, etc.

Unlike Write.as, it’s also worth mentioning that Micro.blog includes access to their iOS app, too. I put an asterisk next to custom themes because you can still customize the CSS of the default theme, you just can’t seem to install other themes from their (admittedly limited) plugin gallery. Given the great price, I figured it couldn’t hurt to try the Micro.one offering since I didn’t care about videos or cross-posting.

Micro.blog: The Good

Micro.blog basically offers exactly what I’m looking for. It’s essentially what I had contemplated and ultimately decided against building myself: a frontend on top of Hugo. In fact, I know Hugo is what’s used under the hood because you get the option to pick what version of Hugo is used in your account settings. Both the web UI and iOS app (which also includes an iPad version!) work very well. As you would expect for something Hugo-based, posts are authored in Markdown, though both the web and mobile interfaces offer the normal UI support and keyboard shortcuts that can handle Markdown insertions for you (e.g. highlighting text and tapping the icon for italics will wrap the content in underscores), which is nice on mobile where authoring Markdown can be annoying.

While the themes are limited, I wasn’t ultimately very picky about how my content showed up. As I mentioned earlier, despite the fact that you can’t use “custom” themes, you still get the ability to customize the CSS for the default theme. With the default theme, for example, I noticed that inline code blocks didn’t really render any different from regular text while full code blocks rendered in monospace font with some nice syntax highlighting. I was able to modify this behavior by using some custom CSS:

code:not([class]) {
    background-color: #44475a;
    color: #bd93f9;
    padding: 2px;
    border-radius: 3px;
}

It’s also worth mentioning that while I’m exclusively using the platform to post short, microblog content, there’s nothing to stop users from posting longer form content. The UI shows a 300 character limit with a smaller text box, but passing 300 characters will cause the UI to expand, allowing for longer form posts. While I didn’t intend to use it for that purpose (any of my longer blog posts, like this one, would remain here), it does mean that I don’t have a hard limit of 300 characters if I decide I need a little more room.

Micro.blog: The Bad

While Micro.blog has been around for quite some time, it’s unfortunately not without its problems. Some of them seemed reasonable while others were quite confusing. The immediate problem I ran into after signing up was that I could access my account but then wasn’t able to actually post anything from the web UI. Typing a post and submitting it would cause the UI to spin, and the post would never publish. Using the developer tools in my browser showed me that when attempting to make the post, I would immediately get a 400 “Bad Request” response, though the UI would never reflect this. Posting from the mobile app was always successful, though. I eventually figured out the problem was related to what URL I used to sign in. Micro.blog has no username and password authentication. To sign in, you enter your email address and receive a magic link. With the new Micro.one offering, both https://micro.one and https://micro.blog exist. If I tried to sign in at the Micro.one domain, I couldn’t post successfully. Signing in at the Micro.blog domain worked. I chalked this one up to something not being accounted for on the backend when the new offering went live.

A bigger problem I ran into was that not all of my posts were visible on my site. If you aren’t familiar with the way Hugo works, each post is a Markdown file. When Hugo compiles everything, it looks at each of those files, the frontmatter at the top of them, and then builds the raw HTML that forms the site. So each time a post is authored on Micro.blog, under the hood the site is recompiled. I happened to notice that each time I created a new post, I would see a random number of posts on my site. Hugo themes generally have a cutoff of what’s displayed on one page, which makes sense. The theme I was using has an “Archive” page that should show everything. I noticed, though, that both the main page and the archive page showed the same number of posts… which was definitely not correct and meant that the majority of my content wasn’t being posted online. If I looked at my account from the user UI, though, all of my posts were still there… they just either weren’t being included in the Hugo build or weren’t being shown by the theme. The number of posts shown seemed to change each time I made a new one.

I was initially unclear on the theme limitations of the Micro.one plan, as I could still see other themes in the plugin gallery and even install them. However, they never will apply to the account. This means that I had no agency to troubleshoot whether the Hugo build under the hood or the theme was the culprit for my missing posts. I was more or less stuck with a broken site.

Decision Time

While Micro.blog checked a lot of boxes that I was looking to fill, it also had quite an array of issues. If the raison d’etre of the site is to serve as my microblog, then obviously having all of my posts visible there is a pretty key point. While I admittedly could have reached out via their community for help, I ultimately decided the juice wasn’t worth the squeeze and that I would just continue making periodic posts to Bluesky for the time being. I was only out a single dollar, so it was well worth the price of admission to test the platform out and see if it fit my needs.