Skip to main content

Awesome! now properly embeds photo posts on my timeline! Micropub still doesn't work yet from the iOS app to Known, though. Still, progress!


Well put, Colin. A platform like has a great deal of potential to advance the adoption of IndieWeb building blocks like Micropub, IndieAuth, Webmention, and mf2, even if the users of don't know or understand any of the underlying foundations. Why? User experience! is simply leveraging IndieWeb technology and standards to build a platform that makes users happy.

While is a great step forward for the IndieWeb, I still believe that the holy grail is getting native support for IndieWeb deep within WordPress core, including broad support from themes. WordPress runs over 28% of all websites, and IndieWeb support in core could be the tipping point for broad adoption.


Daniel Jalkut on Apple's "Clips" and Social Networks

Great post by Daniel Jalkut on Apple's new Clips app, an upcoming app that takes inspiration from Snapchat, Instagram, and Facebook "stories" to enable users to create fun videos to share with their friends. Interestingly, rather than trying to build out yet another social network (which Apple has famously failed on in the past), Clips targets existing social networks.

... any time Apple might have spent building out their own social network is better spent investing in tools that maximize users’ enjoyment of the social networks they already belong to. Rather than obsessing over the venue in which social interactions occur, Apple can profit by equipping its users to be more expressive, wherever they may roam.

I like this core philosophy, and it actually aligns quite nicely with my vision for the IndieWeb. Rather than targeting only silos like Facebook, Snapchat, and Instagram, it'd be wonderful if great user experiences like Clips could enable publishing and sharing to user sites through Micropub and the ilk. Looking forward to playing with Clips!


User Experience and the IndieWeb

6 min read

Those of you who have been following me on this site and on Twitter for the last few years know that I've been a proponent of the IndieWeb and its ideals, and would like to see a return to the open web.

Earlier today, I published a series of tweets about my desire for better, more unfied experiences for people who want to actively participate in the IndieWeb:

I received some great replies from fellow members of the IndieWeb community, including some links to interesting building blocks that people have been working on for years:

Ryan Barrett also shared his thoughts on the topic way back in 2015, with many great ideas.

Building Blocks vs. Unified Experiences

Tools like Granary, Indigenous, and InkStone are great pieces of the puzzle, as are open source CMS's like Known and WordPress with support for Micropub, Webmention, and other IndieWeb building blocks. But, the reason that silos like Facebook, Twitter, and Instagram are popular is that they provide a convenient, easy, and attractive unified experience for content consumption, content creation, and interactions. In order to be successful, and drive mass adoption, the IndieWeb must provide a user experience on par with silos on all three of these fronts.

I think that Manton Reece's project is another good start on attacking the problem, and may get us closer than we've ever been before, which is why I pushed my employer to back the project. But, again, its likely not enough on its own.

Between RSS and Atom, Webmention, and Micropub, the building blocks are there to create such an experience in a decentralized way, with participants in the network owning their own domains, websites, and data, pulling in content from a variety of sources via feeds, and creating posts, reactions, and interactions to their own sites with notifications to other participant sites.

My Vision for a Unified Experience

Today, most people's experience of the web is through algorithmically generated, ad-supported timelines like Twitter and Facebook. Frequently, its on mobile devices in the native app clients for these silos, rather than through a web browser. That's really a shame.

These algorithmically curated timelines are filling the gap that feed readers and aggregators like Google Reader left open. Web browsers have also ceded ground to silos, focusing purely on navigation, tab management, and search, rather than thinking about the bigger picture.

The ideal solution to this problem would be a native application for desktop operating systems and mobile platforms that places user experience at the forefront, and provides:

  • Content consumption for both the open web, through RSS/Atom, and silos like Twitter and Facebook in separate tabs or timelines.

  • Content creation for both the open web, through Micropub, and silos like Twitter and Facebook via syndication or their APIs.

  • Rich interactions for both the open web, through Webmention, and silos like Twitter and Facebook via their APIs.

Back in the early days of Twitter and the iOS App Store, John Gruber wrote about Twitter clients as pioneers of user experience. He was absolutely right! Twitter's (then) open-ish API enabled indie software companies like The Iconfactory, Atebits, and others to innovate and create incredible user experiences. In fact, the early work of The Iconfactory in Twitterific led to the hashtag, @-mention, and other patterns to take hold. The concept of "pull to refresh" was born out of this storm of innovation. Then, as it tried to figure out how to monetize its VC-backed platform, Twitter closed up its APIs, cutting off this innovation.

A unified experience for the rebirth of the open web is a massive market opportunity. The building blocks are there. History has shown that these kinds of experiences can become massively popular and drive innovation.

Opportunity for Who?

This opportunity begs the question: who will build this unified experience? Well, this time, the building blocks are truly open, so anyone can participate. All of those amazing indie developers who were creating Twitter clients back in 2007-2012 could absolutely dust off their code, and pick up where they left off.

That said, I think that browser vendors are in the best possible position to create these experiences, as this is all about driving people to the open web, and consuming it inside of web browsers. I firmly believe that innovation in web browsers has been stagnant for years, with the focus mostly being on search, navigation, rendering, and tabbed browsing, while the ultimate user experience has remained fundamentally the same.

Because of its values and origins, Mozilla is perfectly suited to the problem, and needs to reinvent itself after years of declining market share for Firefox. Mozilla has spent years on distractions like phone operating systems, and a client for enabling publishing, interaction, and content discovery and consumption on the open web, free from silos, is a great opportunity to get back to its roots.

How Can I Help?

For my part, I'm going to continue to advocate for the IndieWeb, support the members of the community that are making the future possible, and work with my employer, DreamHost, to help enable people to own their own digital identity with open platforms like WordPress.

How can you help? Well, that's a blog post for another day.


Such great news. Hopefully Webmention and Micropub being W3C recommendations will push adoption. Exciting stuff :)


Publishing Markdown to Micropub Endpoints with Python

2 min read

You’re probably sick of my posts about Micropub by this point, so I’ll make this my last for a while. Maybe.

I’m up in Seattle this week on business, and the airplane ride from Los Angeles gave me a chance to play around a bit more with Micropub. I whipped up a quick script that allows for quickly publishing Markdown-formatted content to a Micropub endpoint.

This very post is published with the script! Micropub inception! Take a look:

#!/usr/bin/env python

A script for quickly publishing blog posts to a Micropub endpoint. To use
this script, first ensure that you have installed:


You will also need to set the following environment variables:


Run the script, and pass it the path to a Markdown-formatted file. YAML
formatted front matter can be provided with Micropub arguments such as
`name`, `published`, and `slug`.

import sys, os, yaml
import requests, markdown

# configuration
data = {}
token = os.environ.get('INDIEAUTH_TOKEN')
endpoint = os.environ.get('MICROPUB_ENDPOINT')

# make sure the user has provided adequate information
if not token or not endpoint:
    print 'INDIEAUTH_TOKEN & MICROPUB_ENDPOINT environment variables not set.'

if len(sys.argv) < 2:
    print 'Usage:'
    print '    blogit <path to markdown file>'

# read in the content
filename = sys.argv[1]
raw_content = open(filename, 'rb').read()

# check for front matter
if raw_content.startswith('---'):

    # parse out the front matter from the raw content
    _, front_matter, raw_content = raw_content.split('---', 2)

    # parse the frontmatter
    data = yaml.load(front_matter)

# render markdown
data['content'] = markdown.markdown(raw_content, extensions=[

# populate remaining details
data['access_token'] = token
if 'h' not in data:
    data['h'] = 'entry'

# create the post
result =, data=data)

# check the result
if result.status_code not in (200, 201):
    print 'Failed to publish post with status code: %d' % result.status_code

print 'Published successfully.'

You’ll note that it supports some Markdown extras, including code highlighting with Pygments, and several other extras.

Feedback is, of course, welcome. On my flight home, I plan on polishing the script up a bit, making it easy to install, and adding a few options.


Micropub and the IndieWeb

2 min read

It's been years since I last maintained a personal website. Why? Sadly, because of the rise of social media, and content walled-gardens. A few weeks ago, I discovered Known, a new, open source CMS. Known acts as more than just a CMS, enabling users to create a single site that captures all of their content from social media and walled-gardens like Twitter, Facebook, and Instagram.

Known was born out of the IndieWeb movement, which focuses on resurrecting the web of the past, where your content is owned by you, not by an ad-driven corporation. The IndieWeb crew have developed a series of standards and specifications to encourage what they call POSSE, or Publish on your Own Site, Syndicate Elsewhere.

Surprise, It's Markdown!

This site that you are reading right now is created with Known, and fully supports IndieWeb standards like Micropub. In fact, this very post was created in Editorial for iOS and published via Micropub to this site via two workflows.

The Future is Open and Bright

I am thoroughly enjoying being able to microblog, create long form posts, share photos, and otherwise participate in the open web again, while maintaining my ownership over my own content in a single, canonical, self-managed site on my own domain.

The future of the open web is looking up!