# content
Curious what I was up to in 2017? So am I! Thankfully I developed a pretty regular habit of writing short blog posts any time I finished something, so I have a nice collection of posts to draw from for this year-in-review post!

Aside from all the IndieWeb work, I also managed to finish a few unrelated projects!

OAuth 2.0 Simplified Book

In August, I released my book, OAuth 2.0 Simplified at Okta's conference in Las Vegas. It is now available in print, as an ePub, for Kindle, and PDF.

BarBot

In February, I put the finishing touches on BarBot, my robot that pours drinks for me. It can also import h-recipes to make it easy to add new drinks to the database. I've been using it all year, and it's fantastic.

100 Days of Music

While I was doing the #100daysofindieweb project, I was also writing a song every day. These are all published on 100.aaronparecki.com, which was my last #100daysofindieweb project. Since this project wrapped up in March, it's been fun to be able to use these songs in other projects, as well as having other people use them in their own projects!

My Percolator microcast

KmikeyM's Fortnightly Business Report

Marty McGuire's This Week in the IndieWeb podcast

Adam Procter's Fragmentum microcast

Lily's Oh My Dollar podcast and radio show

Wifi Desk Bell

For the week leading up to the end of Lily's Kickstarter, I made a desk bell that would ring every time someone pledged.

Events

I helped run a few events this year:

May 13-14 IndieWebCamp Düsseldorf 📷

May 20-21 IndieWebCamp Nürnberg 📷

We had a great two IndieWebCamps in Germany in May!

Jun 24-25 IndieWeb Summit in Portland 📷

IndieWeb Summit was a lot of fun this year.

Jul 8 Lily's #Spy30 Birthday Scavenger Hunt 📷

Lily organized a city-wide spy-themed scavenger hunt for her birthday! I wrote an app we used to have everyone submit their challenges and handle scoring, as well as ran a live GPS shuttle tracker for the karaoke bus, built a fake radio station that played a coded message.

Aug 15 #biketheeclipse

I led a small group on a day trip bike ride to reach the totality of the eclipse!

Dec 9-10 IndieWebCamp Austin

I was lucky enough to be able to make it out to the first IndieWebCamp in Austin.

Homebrew Website Club

DreamHost was kind enough to host our 2017 Homebrew Website Club meetups!

I've continued to film the talks at DonutJS monthly.

Talks

My Eight Year Old Bot

In January, I gave a talk at Google about my IRC Bot, Loqi. It was a slightly updated version of the talk I gave at the XOXO Bots meetup in 2016.

Owning My Quantified Self Data

At the Quantified Self conference in Amsterdam, I gave a talk about how I keep all my quantified self data on my own website in a place I control.

More info and slides

Posts from June 17

Publishing Your Podcast

As part of our new class lineup for StreamPDX, I ran a workshop about how to take your podcast from the final audio file and publish it online. We're running a Podcasting 101 series again in 2018, and I'll be teaching this workshop three more times!

OAuth 2.0 Simplified

In December I gave a talk about OAuth at the Portland Linux/Unix Group.

More info and slides

My Website

As part of my 100 Days of IndieWeb challenge, which ran from Dec 2016 through March 2017, I made a lot of progress on my website and other various IndieWeb tools! Here are some of the highlights of things I improved on my own website.

Posting to my website from Alexa

Improved comment display

Showing full repost content, and automatically fetching reposted content

Displaying reply contexts, and automatically fetching reply context

Audio posts so that I can publish podcast episodes

Recipe support

Redirects for old blog posts

Include featured photo when syndicating articles

Creating sleep posts from FitBit import

Media Fragment URIs

Indexing my emoji use, and autolinking emoji in posts

Live chat widget

Replaced my SSL certificates

Finally got checkins on my site!

Indicating the audience of posts

#now page

Pulsing blue dot

Stories

Payment requests using ApplePay

Showing full contents of likes

Automatically POSSEing likes and reposts

Adding weather info to posts

IndieWeb Specs

As part of my work in the W3C Social Web Working Group, I was involved in writing a few specs as well as tools to help people test their implementations.

Webmention

In January, Webmention reached the final stage of the standards process at the W3C and became a W3C Recommendation!

I continued to improve the test suite, adding some tricky edge cases for discovery and redirects.

I also did a big reorganization of the Webmention page on the IndieWeb wiki.

Micropub

Micropub reached Recommendation in May, after the Proposed Recommendation in April. I wrote some about the history of the spec and the standards process.

I did a lot of work on the test suite, micropub.rocks, over the few months leading up to Recommendation. Since Micropub requires authentication, I had to build an OAuth server into the test suite so that you can sign in to other Micropub clients. I wrote several client tests, including filling out the implementation report automatically, tests for video and audio posts, and tests for updating posts.

WebSub

WebSub was a recent addition to the working group. Formerly known as PubSubHubbub, the group adopted the spec in order to continue refining it, and we decided to give it a new name as well.

We published the Candidate Recommendation in April, and continued iterating on it over the summer, publishing the Proposed Recommendation in October.

I finished the test suite, websub.rocks in May.

IndieAuth

I finally managed to write up IndieAuth as a spec! Previously it was a series of tutorials on the wiki. I launched the first version of the spec on December 5th, and have been making minor changes since then based on community feedback.

Microsub

Early in the year, I drafted a spec intended to allow quicker development of reader applications by offloading feed fetching and parsing to a separate server. I called this spec Microsub. A few months later, I started prototyping out a server, which I've soft-launched as the reincarnation of Monocle. The spec has continued to iterate as I develop my Monocle server and Grant works on the front-end application, Together.

IndieWeb Projects

Again, thanks to my 100 Days of IndieWeb challenge, I made a lot of progress on a bunch of different IndieWeb projects. Here are some of the highlights, grouped by project.

OwnYourSwarm

I launched OwnYourSwarm in March, including sending person-tags, sending Webmentions for Swarm coins, backfeeding comments and likes, and some documentation. It will even poll your past checkins for photos, and you can also import past checkins. Later in the year, I added a property to indicate when another user checks you in, checked in by.

OwnYourGram

OwnYourGram has been around for a few years, but I made some improvements to it in 2017. You can now whitelist and blacklist terms to control what photos are imported. OwnYourSwarm now sends full h-cards for locations, and finally supports multi-photos.

Quill

I added some new features to Quill, such as the ability to set tags, slug and post status and published date for posts, a better photo upload UI, supporting posting RSVPs, showing the reply context of the thing you're replying to, and cleaned up the HTML that the visual editor creates. I also improved the docs, made some other UI improvements, fixed a JS vulnerability.

XRay

My work on XRay has continued to be useful in many different other projects. XRay parses contents from other websites and returns the data it finds in a normalized format. I added support for parsing Instagram photos, as well as tweets. I also added support for two new Microformats vocabularies, h-review and h-recipe. I made it easier for others to deploy XRay in various hosting environments. I had to jump through some hoops in order to deploy a Letsencrypt certificate on AppEngine where I run XRay.

Miscellaneous IndieWeb Projects

I published my GPS tracking app in the App Store! I also wrote some documentation for it.

I made a few updates to IndieNews, our community news aggregator. Some small improvements to displaying text in posts, enabling WebSub for IndieNews feeds, added a Webmention form, added support for different timezones per post, and added a calendar view of all stories submitted.

The Slack/IRC gateway now works across all our channels, and Slack emoji are converted to unicode in IRC. The gateway now also supports image uploads from Slack.

Atlas maps can now have curved lines.

I published a few new libraries used in various projects:

Timezone lookup for a location

Emoji detection

I had to make some changes to indieauth.com since Clef shut down. I also used that opportunity to remove SMS logins as it is not the most secure. I also updated the documentation.

The "This Week in the IndieWeb" newsletter now also includes podcasts.

I submitted a PR to Known to improve its Micropub handling.

I added a dashboard to webmention.io so that you can see at a glance the last few Webmentions you've received, as well as delete them if you want.

I started publishing a podcast about my IndieWeb work, called Percolator. I managed to publish 16 episodes from October to December, without much regularity. I hope to continue this in 2018.

I finished a major effort to finally update our MediaWiki to a modern version. Part of this work was also replacing the way authentication is handled, so that it can be used across our other subdomains. This also included archiving plaintext backups of our wiki as well as chat logs in Git repos.

One of the last things I did was create a set of tiny IndieWeb badges you can use on your site! I added them to the footer of my website as well. There are badges for IndieWebCamp, Webmention and Microformats.

Looking Forward to 2018

Overall I had a pretty full 2017! It felt both busy at times and slow at other times.

I'm already looking forward to IndieWebCamp Baltimore later this month, and I'll begin planning IndieWeb Summit 2018 soon!

Some of my concrete goals for 2018:

Finally settle the indieauth.com naming confusion issue this year

Run IndieWeb Summit in Portland

Continue development of my IndieWeb reader, Monocle, as well as the Microsub spec

Launch and run the StreamPDX Podcast Fellowship

Continue filming the monthly DonutJS meetups, and expand to cover more meetups as well