44°F

Aaron Parecki

  • Articles
  • Notes
  • Photos
  • Micropub is a W3C Recommendation

    May 30, 2017

    I'm excited to announce that Micropub is now a W3C Recommendation! It's been a long road, but we made it! This is the final stage in the W3C spec lifecycle, and means that the spec has gone through several stages of review, and all parts of the spec have been implemented by at least two people.

    Incubation and Selfdogfooding

    Micropub began in 2013 when I outlined a simple API to create blog posts and short notes for my website, and published it on the IndieWeb wiki. I implemented it on my server as well as in a few new client applications, and was quickly using it day-to-day. The main design goal with Micropub is that it should be easy to implement, and it should build on top of existing standards: OAuth 2.0 and the Microformats 2 vocabulary.

    Micropub is also intended to be implemented incrementally. Rather than having to read, understand, and implement the whole spec, you can start by implementing the basics of just creating simple text posts. You can later expand your implementation to support more complex objects, as well as editing and deleting posts.

    Implementations and Interoperability

    One of the benefits of supporting Micropub on your server is that it allows you to leverage other peoples' work in building an interface to create posts on your own website. By 2014, there were already six independent server implementations, and four client implementations other than my own.

    Over the next years, more and more people built out Micropub support in their blogging systems, including plugins for WordPress, Known, Kirby and more. Many client implementations have popped up as well, for a variety of platforms including the Micro.blog iOS application, a Ruby web app, an XMPP chat bot, and more. I also wrote a Micropub proxy service OwnYourGram which imports your Instagram photos to your website, and another called OwnYourSwarm that does the same for Foursquare checkins.

    Micropub at the W3C

    In 2015, the Social Web Working Group decided to adopt the Micropub spec to fulfill the client-to-server API aspect of our charter. 

    After taking the initial spec from the IndieWeb wiki and writing it up in W3C format, I brought it to the working group as an Editor's Draft. After working on it within the group for a few months, we resolved to publish it as a Working Draft in January 2016. 

    W3C Spec Lifecycle

    Publishing a Working Draft is typically the first time the spec will be noticed by other groups within the W3C, as it's the first time a working group signals that a spec is intending to reach Recommendation status. Micropub went through 5 revisions of Working Drafts from January to July 2016, gathering feedback from implementers and incorporating it into the spec. The changes ranged from editorial clarifications, to changes that affect the implementations such as names of properties or response formats. You can see all of the changes in the Micropub working drafts here.

    At the point the working group is satisfied that the spec is in good shape, the group can request that the spec be promoted to a Candidate Recommendation. To do so, the group must demonstrate that the spec has received "wide review" from people outside of the working group. We used GitHub Issues to get and track feedback, to make it easy to show the feedback received and how any feedback was incorporated into the spec. Publishing a Candidate Recommendation requires the approval of the W3C director.

    Test Suite and Implementation Reports

    The spec then stays in the Candidate Recommendation stage for a minimum of four weeks. This time is used to gather feedback from other W3C member companies, as well as gathering implementation reports from anyone interested in the spec. Implementation reports are meant to collect information on which parts of the spec are being implemented, in order to get a sense of how mature the spec is and how well it's written. While the implementation report may look like a checklist you have to complete, it's totally fine to submit it with only a few boxes checked. It's more of an evaluation of the spec than an evaluation of your implementation.

    In the W3C Social Web Working Group, we set an intentionally high bar for our specs to graduate out of Candidate Recommendation. In order to be promoted from Candidate Recommendation to Proposed Recommendation, our group decided that each feature of the spec must be implemented by at least two independent implementations. This helps ensure that the spec really does encourage interop between implementations.

    I created a test suite, micropub.rocks, that you can use to test your client and server implementations. The test suite helps you fill out the implementation report, and also is a great tool for debugging your application as you're building it out.

    micropub.rocks

    If you're building a server, micropub.rocks will pretend to be a client and will send you requests that hit all the edge cases of the spec. If you're building a client, you can use micropub.rocks as a server to test how well your client can create and edit posts.

    Proposed Recommendation

    At the point the working group has determined that all features of the spec have been implemented, and that the spec has been reviewed by people outside the working group, the group can decide to request that the spec be promoted to Proposed Recommendation. The spec can't have any substantive changes between Candidate Recommendation and Proposed Recommendation, but things like typo fixes are okay. The W3C director must approve the request to transition to Proposed Recommendation. The Proposed Recommendation step is one last chance to broadcast widely that the W3C believes the spec is ready to publish as a Recommendation, and gives the W3C Advisory Committee an opportunity to formally object to any aspect of the spec.

    Micropub reached Proposed Recommendation status in April 2017.

    Recommendation

    The final step is to publish the spec as a W3C Recommendation. In order to be promoted from Proposed Recommendation to Recommendation, the W3C Advisory Committee and the Director must approve the request. Once a Recommendation, the spec is finished, and can only be changed by submitting Errata.

    Getting Started

    The micro.blog iOS application posting to my website via Micropub

    In addition to the test suite, there are already many clients and servers you can try out yourself! We've been documenting Micropub clients and servers on the IndieWeb wiki, so have a look around!

    If you're building a blogging platform, you can allow your users choose from a wide variety of posting clients by implementing the Micropub spec.

    If you're building a posting client and want it to work with many different server backends instead of hard-coding it to Twitter or other proprietary APIs, implement the Micropub spec and you'll quickly have people eager to start using the app!

    I hope this post has been a useful overview of what I've been working on for the past several years, and gives you a bit of a sense of what it's like to work on specs at the W3C!

    Tue, May 30, 2017 9:00am -07:00 #w3c #micropub #specs #indieweb
    76 likes 33 reposts 1 bookmark 10 replies 13 mentions
    • gRegor Morrill
    • Calum Ryan
    • Ryan Barrett
    • Marty McGuire
    • Keith J. Grant
    • Jim Barry
    • Michal Young
    • Nagisa Day
    • Alexander Cobleigh
    • John Jusayan
    • Sven
    • Pelle Wessman
    • Ben Werdmuller
    • Gavin Rehkemper
    • Nick Cummings
    • TomWithTheWeather
    • Eric Portis
    • Joschi Kuphal 吉
    • Mike Merrill
    • Marcus Estes
    • Perry Wagle
    • edbury
    • Shane Becker
    • Juliane Schütz
    • Will Norris
    • Alan Pearce
    • Valentina Bettencourt
    • Amalia Parecki
    • Aaron Antrim
    • Troy Howard
    • Morgan Fogarty
    • Leif Warner
    • Arne Hassel
    • Morgan Roderick
    • Nicki Rios
    • trisha 🌈
    • TheodorosPloumis
    • Bret Comnes
    • Stefan Grund
    • Amber Wilson
    • Jesse Holden
    • Sebastian Feldmann
    • John Foley
    • James Madson
    • Riccardo Cambiassi
    • Matthias Pfefferle
    • Lewis Nyman
    • Anonymous
    • Riccardo Erra
    • Wm Salt Hale
    • John Karabaic
    • Nick Furness
    • Baldur Bjarnason
    • Angela Sparks
    • Mike Richmond
    • Al Pascual
    • Bruce Godin
    • Ronaldo Bartl
    • Ed Parecki
    • Samara Matson Wartes
    • Jesse Wakeley
    • Jim Tyhurst
    • Dominic Grzbielok
    • Oliver Gutperl
    • Evan Prodromou
    • Jonny Barnes
    • Alan W. Smith
    • Landon Tran
    • Harry Halpin
    • Jewel Mari Mlnarik
    • Donny Burnside
    • Stacey DePolo 🌻
    • Brennan Novak
    • Ann Bassetti
    • W3C Social Web WG
    • Will Norris
    • Joel Purra
    • Zoe Watson
    • Madeleine Paige
    • Baldur Bjarnason
    • Riccardo Cambiassi
    • Rogier
    • Amber Wilson
    • Fabricio Zuardi UASF
    • Amandeep singh
    • ngw
    • Neo
    • Mark Everitt
    • Paul Lloyd
    • trisha 🌈
    • Matthias Ott
    • Keri Henare
    • Jeremy Keith
    • Julien Genestoux
    • Shane Becker
    • Stefano Maffulli
    • Calum Ryan ☘️
    • Florian Weil
    • Eric Portis
    • Jonathan LaCour
    • Joschi Kuphal 吉
    • Ricardo Mendes
    • IndieWebCamp
    • keith•j•grant
    • Micropub
    • IndieAuth
    • Sven
    • W3C Social Web WG
    • Pelle Wessman
    • Jeremy Keith
    • Havena Marks www.facebook.com/732782070087510
      Impressive Aaron ‼️👍
      Wed, May 31, 2017 12:06pm +00:00 (via brid-gy.appspot.com)
    • Mike Richmond www.facebook.com/10153076750621804
      Very cool!
      Wed, May 31, 2017 12:24am +00:00 (via brid-gy.appspot.com)
    • Daniel Patrick Johnson www.facebook.com/10154065753200624
      Dot rocks
      Tue, May 30, 2017 7:18pm +00:00 (via brid-gy.appspot.com)
    • Amalia Parecki www.facebook.com/10152149262524635
      Nice, Aaron Parecki!
      Tue, May 30, 2017 5:47pm +00:00 (via brid-gy.appspot.com)
    • Aaron Antrim www.facebook.com/859049735590
      Congratulations!
      Tue, May 30, 2017 5:44pm +00:00 (via brid-gy.appspot.com)
    • Jonathan LaCour cleverdevil.io/profile/cleverdevil
      @aaronparecki.com great overview of a great API! Thanks for all of your hard work pushing Micropub over the finish line.
      Tue, May 30, 2017 4:39pm +00:00
    • Ben Werdmüller www.facebook.com/36802236
      ❤️
      Tue, May 30, 2017 9:12am -07:00 (via brid-gy.appspot.com)
    • Jillian Ada Burrows www.facebook.com/10202821197044564
      ❤️
      Tue, May 30, 2017 9:43am -07:00 (via brid-gy.appspot.com)
    • Havena Marks www.facebook.com/732782070087510
      😮
      Wed, May 31, 2017 5:18am -07:00 (via brid-gy.appspot.com)
    • Jean Paul Voilleque www.facebook.com/828962737172700
      ❤️
      Fri, Jun 2, 2017 2:05pm -07:00 (via brid-gy.appspot.com)

    Other Mentions

    • Aaron Parecki aaronparecki.com
      My 2017 Year in Review
      Thu, Jan 4, 2018 2:40pm -08:00
    • Jeremy Keith adactio.com
      Posting to my site
      Wed, Jul 26, 2017 5:14am -07:00
    • Ann Bassetti twitter.com/annbass
      Fantastic work @aaronpk, w #indieweb & @SocialWebWG help. Link is excellent description of how idea / spec can move thru @W3C process.
      Tue, Jun 13, 2017 5:41am +00:00 (via brid-gy.appspot.com)
    • Eli Mellen eli.li
      🙌 Liked: aaronparecki.com/2017/05/30/1/w…eli.li/entry.php?id=2…
      Fri, Jun 2, 2017 8:05pm +00:00 (via brid-gy.appspot.com)
    • Jonathan LaCour cleverdevil.io/profile/cleverdevil
      Micro.blog, JSON Feed, and Evergreen Give Me Hope for the Open Web
      Thu, Jun 1, 2017 8:46pm +00:00
    • Christian Weiske cweiske.de
      Micropub plugin for Tiny Tiny RSS
      Thu, Jun 1, 2017 4:30pm +02:00
    • Marty McGuire martymcgui.re
      HWC Baltimore 2017-05-31 Wrap-Up
      Wed, May 31, 2017 8:14pm -04:00
    • Marty McGuire martymcgui.re
      HWC Baltimore 2017-05-31 Wrap-Up
      Wed, May 31, 2017 8:14pm -04:00
    • Petra Gregorová petragregorova.com
      Great news to hear/read that Micropub is now a @w3c recommendation! aaronparecki.com/2017/05/30/1/w…
      Tue, May 30, 2017 7:09pm +00:00 (via brid-gy.appspot.com)
    • Adactio Links adactio.com/links
      Micropub is a W3C Recommendation • Aaron Parecki aaronparecki.com/2017/05/30/1/w…
      Tue, May 30, 2017 5:05pm +00:00 (via brid-gy.appspot.com)
    • Ben Werdmüller werd.io/profile/benwerd
      Micropub is a lightweight, universal API for publishing to the web (created by #indieweb). Now a W3C recommendation! https://aaronparecki.com/2017/05/30/1/w3c-micropub
      Tue, May 30, 2017 4:04pm +00:00
    • Ben Werdmüller werd.io/profile/benwerd
      Micropub is a lightweight, universal API for publishing to the web (created by #indieweb). Now a W3C recommendation! https://aaronparecki.com/2017/05/30/1/w3c-micropub
      Tue, May 30, 2017 4:04pm +00:00
    • medium.com
      Wed, Jul 26, 2017 4:19am -07:00
Posted in /articles using quill.p3k.io

Hi, I'm Aaron Parecki, Director of Identity Standards at Okta, and co-founder of IndieWebCamp. I maintain oauth.net, write and consult about OAuth, and participate in the OAuth Working Group at the IETF. I also help people learn about video production and livestreaming. (detailed bio)

I've been tracking my location since 2008 and I wrote 100 songs in 100 days. I've spoken at conferences around the world about owning your data, OAuth, quantified self, and explained why R is a vowel. Read more.

  • Director of Identity Standards at Okta
  • IndieWebCamp Founder
  • OAuth WG Editor
  • OpenID Board Member

  • 🎥 YouTube Tutorials and Reviews
  • 🏠 We're building a triplex!
  • ⭐️ Life Stack
  • ⚙️ Home Automation
  • All
  • Articles
  • Bookmarks
  • Notes
  • Photos
  • Replies
  • Reviews
  • Trips
  • Videos
  • Contact
© 1999-2025 by Aaron Parecki. Powered by p3k. This site supports Webmention.
Except where otherwise noted, text content on this site is licensed under a Creative Commons Attribution 3.0 License.
IndieWebCamp Microformats Webmention W3C HTML5 Creative Commons
WeChat ID
aaronpk_tv