Indie Microblogging by Manton Reece

External blogs with WordPress

“As the web becomes more and more of a part of our every day lives, it would be a horrible tragedy if it was locked up inside of companies and proprietary software.” — Matt Mullenweg is essentially a sort of aggregator. It downloads feeds of posts hosted on or on external blogging platforms, then merges those posts into a timeline experience for following users and sending replies. Because it’s based on standards, you don’t have to use to host your blog.

WordPress is used by over a third of web sites on the internet. It’s had a huge influence on blogging and it improves regularly. Because if its popularity, we’ll use WordPress as an example for thinking about how connects with external blogs. This section will go through the basics of microblogging with WordPress, although many of the tips here are just as applicable to other blogging systems.

Short posts

Everything starts with short posts. Without short posts, there’s no “micro” in microblogging. While there’s no formal rule for how long a post should be, I’ve found that 280 characters is a good guideline. It’s short enough that it encourages quick posts, but long enough to fit a full thought with proper punctuation.

Of course, 280 was intentional. It’s double the original 140-character limit from Twitter. Any limit is arbitrary, so I liked picking a number that is symbolic of the move beyond Twitter.

After launched, Twitter also increased their limit to 280 characters. And even later, standardized on 300 characters, a nicer “rounded up” number.

If you want to continue to post to Twitter, Mastodon, Bluesky, or Threads, it’s useful to keep those limits in mind while writing. I keep most of my indie microblog posts within 280 characters so that they cleanly cross-post elsewhere. But when I feel constrained by the limit, I don’t hesitate to go over. It’s more important to me that I get a full thought posted than to stay within the limit.

No titles

In most modern blogging platforms, the first thing you see when starting a new post is the title field. If you know exactly what you’re going to write about, maybe it’s fine to start with the title. But for many people, just picking a title is a kind of burden. It’s another opportunity for a choice, which means it’s an opportunity to give up before finishing the post.

We see how titles can introduce friction in the writing process outside of blogging too. In 2009, Daring Fireball author John Gruber wrote an essay about friction in programming languages and why it’s common to type into a new untitled window that has never been saved:

Friction is resistance. Hence untitled document windows containing hours of unsaved work — there’s an idea in your head that you want to express or explore, and the path of least resistance is to hit Command-N and just start working.

That’s how blogging should be too. Just start writing.

Blogging tools didn’t always have titles. One of the early blogging systems was Radio Userland, which had an almost Twitter-like simplicity for new posts. There was no title field.

In the RSS 2.0 specification, the title of a post is optional:

An item may also be complete in itself, if so, the description contains the text (entity-encoded HTML is allowed; see examples), and the link and title may be omitted. All elements of an item are optional, however at least one of title or description must be present.

Part of indie microblogging is getting back to the simplicity of title-less posts. When you’re writing a microblog post in WordPress, just leave the title blank, and if necessary update the WordPress theme to not include the title in HTML or the RSS feed.

You may find that some feed readers don’t gracefully handle posts without titles, often inserting “Untitled” for the title because they expect something to be there. If you see this, the best solution is to email the developer and ask for them to address it. Working around the issue with fake titles — dates, numbers, or portions of the text — will only ensure that client developers never improve their apps to handle title-less posts.

For WordPress, there are also work-arounds to keep using clean feeds without titles while still showing titles on your web site or in WP Admin. Colin Walker wrote a WordPress script that shows the date/time in WP Admin, to make it easier to manage posts.

Adding your feed

WordPress includes an RSS feed at /feed/. Add this feed to your account by clicking Account → Edit Feeds & Cross-posting: uses the feeds on your account to build the timeline of posts that will be shown to your followers. When you post to your blog, the post is added is added to your feed, which then reads and adds to the timeline.

Post formats

Newer versions of WordPress have the concept of post formats. Normal blog posts have a “Standard” format, but there are also these types: Aside, Image, Link, Quote, Status, and others.

While not all themes support post formats, most of the default themes do. If you’re using a common WordPress theme, chances are good that it has basic support for “Status” or “Aside” already.

It might be tempting to embrace all the post formats — for example, using the “Image” format when posting a photo to your microblog — but that adds some complexity that won’t be well-supported in most tools. To keep things simple, use “Standard” for longer posts with titles, and “Status” or “Aside” for all your microblog posts: short posts and photo posts. You can always introduce additional formats later when you’re comfortable with the basics.

(Ready for more advanced post types? The IndieWeb-friendly Post Kinds plugin from David Shanske introduces even more post types such as photo, check-in, reply, and like.)

Categories are another good way to group post types. If you use the Status post format for all microblog posts, try using separate categories such as Photos, Snippets, or Microblog. You can use categories to filter posts on your site, or have separate feeds for certain post types by including the category in the feed URL.

RSS and JSON Feed

WordPress’s default RSS feed at /feed/ will include all your posts, both long-form and microblog posts.

If you’d like to have separate feeds for different types of posts, use the category to control which posts are included in the feed. You can find the category ID in WP Admin under Posts → Categories. (Look for the “tag_ID” parameter on each category link.)

For example, to only return posts with category ID “5”:


To return all posts except that category, prefix the number with a minus sign:

/feed/?cat=-5 can work with RSS, Atom, or JSON Feeds. JSON Feed is a good default choice if you’re just setting up your account.

To install the JSON Feed plugin, in your WP Admin dashboard go to Plugins → Add New and search for “JSON Feed”. After you install and activate the plugin, you will now have a JSON feed at /feed/json  with the same posts as your RSS feed.


The default WordPress themes are named as years, such as “Twenty Seventeen”, with a new theme each year. These themes have basic support for microblogging.

The most important thing to look for in a theme is how it handles blank titles and post formats. Create a short post without a title and use the “Live Preview” button when selecting a new theme to see how it will look on your blog.

The default WordPress themes have limited support for an older version of Microformats, a format we’ll cover more in Part 3. Microformats can be used to add data to posts in a way that will be useful as you integrate more features such as replies into your microblog. More IndieWeb-friendly themes with support for Microformats include Independent Publisher and SemPress.


Now that you have a blog that contains all your microblog posts, you can wire it up to cross-post automatically to other services. You’re writing on your own site first, but the posts still go out to your followers on Mastodon or Bluesky.

There are general tools such as IFTTT and Zapier that can take some action based on an item in your RSS feed, but none of them natively understand microblogs. When building, I wanted to bake all the correct logic for cross-posting directly into the platform.

Some of the things handles: sending short text out as if it was a regular tweet, extracting the first link in a post and appending it to the tweet, truncating long posts with a link back to your site, and downloading photos to attach them directly when cross-posting.

Posting from iOS

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.

The apps have a formatting toolbar that uses Markdown. To support Markdown automatically in WordPress, install the Jetpack plugin.

Next: Alternative platforms →