ThreadReaderApp now has beta support for the Micropub Spec so you can publish Twitter threads directly to your blog

So… a while back I tweeted about a bit of functionality I’ve long thought would be a cool one to have for Twitter:

I would often see people post tweetstorms, long threads of related tweets, to tell an extended story.

Invariably people see these threads and say “Why don’t/didn’t you just post that on your website as a blog post instead?”

(In fact, why don’t you try it on this very tweet?)

I’ve personally been using the #IndieWeb concept of P.O.S.S.E. (Post on your Own Site and Syndicate Elsewhere) for a while now. I’ll post my content on my personal website first and only then syndicate a copy to Twitter.
indieweb.org/POSSE

But today, for the first time in a very LONG time, I’m posting this particular thread to Twitter first…

Then when I’m done, I’ll roll it all up conveniently using the awesome @ThreadReaderApp which will put a nice readable version on their site.

Presto!

Blogpost, right??

Sadly, I don’t own that copy…

It really needs to be on my blog for that to work, right?!

“But wait. There’s more.” as they say in advertising.

Now with the help of @ThreadReaderApp, and the Micropub plugin for #WordPress, I’ll be able to view my thread on ThreadReader in a brand new bonus feature that’s currently in beta. Screencapture of ThreadReaderApp site featuring a button labeled

Yes, you guessed it! It’s that wondrous “Publish to Blog” button!!

With a quick click, @ThreadReaderApp will authenticate and I can authorize it to publish to my WordPress site on my behalf.

I can now publish the entire thread to my own website!!

Now this thread that I’ve published to Twitter will live forever archived on my own website as its own stand-alone blogpost.

Huzzah!!

I’m not sure how often I’m prone to do this in the future, but I hope we won’t hear that “Why didn’t you just post that on your own website as a blogpost?” as frequently.

With just a button push, I’ll be able to quickly and simply cross-post my Twitter threads on Twitter directly to my website!
#OwnYourData

In #IndieWeb terminology this publishing workflow is known as P.E.S.O.S. or Publish Elsewhere, Syndicate to Your Own Site.
indieweb.org/PESOS

I’ll mention for the masses that this publishing functionality is only possible courtesy of a W3C recommendation (aka web standard) known as Micropub.
indieweb.org/Micropub

Because it’s a web standard, @ThreadReaderApp can build the functionality once & it should work on dozens of platforms including @WordPress @Drupal @WithKnown @CraftCMS @Jekyllrb @GetKirby @GoHugoIO @MicroDotBlog among a growing set of others.
indieweb.org/Micropub/Serve…

Some of these may have built-in or core support for the standard while others may require a simple plugin or module to support this functionality.

Don’t see your platform supported yet? Ask your CMS or platform provider to provide direct support.

It shouldn’t take much work for @Ghost @grabaperch @squarespace @Wix @getgrav @magento @typo3 @Blogger @medium @Tumblr @mediawiki @omeka and others to support this too.

There’s lots of open source implementations already out there in various languages and there’s a fantastic test suite available for developers.

I’ll also give a quick shout out to @iAWriter which also just added Micropub support to let people use their editor to post to their websites.

And of course once you’ve realized that your platform supports Micropub to publish to your website, why not try out one of the dozens of other Micropub clients out there?
indieweb.org/Micropub/Clien…

They support a variety of post or content types from full articles to photos and geolocation to bookmarks. The sky’s the limit.

Some of my favorites are Quill, OwnYourSwarm, Omnibear, and Teacup. And let’s not forget social feed readers like Monocle and Indigenous that let you read and respond to content directly in your feed reader! (I no longer miss Google Reader, now I just feel sorry for them.)

Congratulations again to @ThreadReaderApp for helping to lead the way in the corporate social space for support of the awesomeness that Micropub allows.

Thread away!

Micropub for WordPress instead of yet another snowflake API

Replied to Should WordPress Provide an API for Third-Party Editors? by Justin TadlockJustin Tadlock (WordPress Tavern)
Imagine a future where you log into your website’s admin. You head over to the editor. This particular editor has all the tools and features in place that make you more efficient at producing…
This is certainly a great idea and one that has been contemplated and explored before.

As a bit of prior art, consider the (originally) open API that Twitter provided that created an efflorescence of Twitter clients one could use to post to Twitter. Obviously those were a bit simpler since they only involved 140 characters of text, URLs, and maybe photos or geo-coordinates. While Twitter eventually cut off the API, the concept was a strong one and the competition provided by the wealth of options, including paid options, made creating posting interfaces or editors an easy option for a variety of developers. Remember the thousands of WordPress plugins in the WordPress repository alone? (Sadly, Twitter turned off this API and all the lovely posting clients for Twitter either died or were bought up by Twitter and look where we are now.)

Several years ago the IndieWeb community took the openness of this model to heart and created the W3C recommended Micropub spec. It’s essentially an open API that dis-intermediates the CMS/publishing platform from the editor interface using a client/server model. It also has the benefit of allowing developers to create incredibly highly customized publishing interfaces. You can now use a full article editor like Quill which provides a Medium.com-like interface, but you can also use something supremely simple like Teacup (even from your watch!) to quickly post what your drinking/eating (along with a timestamp and optional location) to your website.

As a result of this development and the fact that there’s already a Micropub endpoint implemented for WordPress as a plugin, you can try several dozen editors and posting clients out today! And why not try them on other platforms like Drupal, Known, Craft, Jekyll, Kirby, Hugo, and Blot to name a few.

The added benefit is that designers and developers can create either very simple interfaces for posting custom things (maybe you want to post the book you’re reading with indiebookclub.biz to your website in a GoodReads or LibraryThing sort of way) or they can create interfaces for posting almost anything (our Quill example). Interface modalities can also be dramatically different. They could be stand-alone applications on PC/MacOS/Linux, web applications, mobile applications, or as simple as a browser extension (Omnibear for Chrome or Firefox is a great example of this).

For several months now, I’ve been using several social media sites to publish their data to my website using their RSS feeds via IFTTT/Zapier to Webhooks that post to my Micropub endpoint. There’s nothing better than owning all your data, right?

Maybe you want to go all in on the social media side of life? What’s to keep feed readers from building in these Micropub posting interfaces? Then you could read posts in something like the WordPress.com reader, type your reply or response directly into the reader and use Micropub to post it to your website and also cross-post it to social media? (Incidentally there are a handful of social readers that do this already!)

I hear UI complaints by people all the time at camps… If you’re a dev shop interested in paring down the editor interface for a non-tech-savvy client, then customize a Micropub client to post only the minimum requirements and let the WordPress CMS and theme take care of the rest for them! In fact, perhaps there’s a market for white-listed or even branded posting interfaces?

Now that we’ve fixed the root problem without tons of engineering time, all WordPress really needs to do is to create a Micropub client out of Gutenberg, and all those hours of work and engineering on that one posting interface could allow it to be a client to not only post to WordPress, but to Drupal sites, WithKnown sites, and any of the other dozens of platforms that already support the spec.

I mentioned it the other day, on my own website and on Twitter, if Iceberg were to implement their editor as a Micropub client, then their users could use it not only for WordPress, but other CMS platforms could use it as well.

What if a user got tired of using and maintaining their current CMS and wanted to move to another easier or faster one? They don’t have to dump the beautiful editor interface and workflow they’ve become accustomed to, they can just move to anything else that has a Micropub endpoint and take their editor with them. (Think about how you can take most text editors with you if you moved from PC, MacOS, or Linux. Why shouldn’t the same be true if you changed CMS? It’s all just data, right?!)

A great example of just this potential came out in the last week. The 9 year old iA Writer just added Micropub support. It’s a markdown writing app that supports publishing to WordPress, Medium, and Ghost. With Micropub support it can now be used to publish to dozens of additional CMSs and services like Micro.blog. While it’s available on Mac/iOS devices at the moment, I can’t wait for them to add the support for Windows and Android devices shortly as well.

Or what if Medium.com pivoted (maybe for the last time?) and made itself a Micropub client? Then it could be the billionaire’s typewriter that we’ve all been hoping for? And it would have the benefit of being able to post to multiple CMSs.

There are so many possibilities for such an open ecosystem. But, please, let’s not just build something that only works with WordPress API. Do we need another API that will make it harder for editor designers and developers to support each and every quirky, ever-changing snowflake API out there?

Want some more overview and some demos? I did a WordCamp session on the topic last year.

Replied to A thread on Hypothes.is in relation to Audrey Watters' Top Ed-Tech Trends of 2015: Indie Ed-Tech by Audrey Watters, Jeremy Dean, Dan Whaley (Hack Education / Hypothes.is)

it supports students and teachers and schools in managing their own infrastructure, their own labor, their own data.

—Audrey Watters

Ok, so is hypothes.is doing this? How can it?

  • my annotations must be better accessible/organizable --the current "My Annotations" is not enough
  • annotation must be exportable

—jeremydean on Dec 30, 2015


And ultimately, you need to be able to completely run your own annotation infrastructure, but create and access it through a universal client.

—dwhly on Dec 30, 2015


Sure. Less clear to me how that looks/works and what that I do today online is similar in "ownership." But does your "you" refer to students or teachers or schools or all of the above?

The first two (I list) seem key in terms of practical adherence to these principles for everyday users.

—jeremydean on Dec 30, 2015


It's similar in character to the Domain of One's Own initiative. From a long term perspective, you might be better off taking ownership of your own infrastructure, that you can carry with you and guarantee will be available over long time periods (decades to centuries). Hypothes.is should at the very least permit you to do so if you prefer-- regardless of whether we continue to provide an annotation service at scale (which I very much think we should).

Your question around "you" is an important one. I might for instance, set up my own annotation server for my personal notes-- with the confidence that I'll always be able to find a reliable hosting provider for those. Similar to how I have my own web domain, and I host it at one place now, but I can always move it if that location goes out of business-- and my website will be identical to its current form in the new place. In the same way, my current personal email is through an address at my own domain. I don't need to depend on gmail being around forever.

As a teacher, I might use a more common service provider (like Hypothes.is) for class lessons-- one that my students are already likely to have accounts on. As web travelers, we're really accustomed to browsing seamlessly between servers-- it's understood to be the essential architecture of the web. Bringing it to the world of annotations has extraordinary benefits (IMHO) and will serve to foster more adoption and more diversity of applications.

—dwhly on Dec 30, 2015

I’ve been thinking over some of this question for the better part of a decade and even more pointedly since November.

Some of what I’ve been looking at relates back to the renaissance ideas of the commonplace book as well as memory techniques dating back to ancient Greece and even further back. There are ideas like wikis (personal as well as public–Audrey references a great post by Mike Caulfield in her article) and online notebooks tools like Evernote, OneNote, TiddlyWiki, Roam Research, etc. If a student could quickly add all their highlights/annotations into their website, online notebook, Zettelkasten, or other related learning tools, then they could use them for reading, reviewing, or even spaced repetition as provided by platforms like Anki, Mnemosyne, or NeuraCache.

Going back to Jeremy’s original question though:

Ok, so is hypothes.is doing this? How can it?

Hypothesis could immediate do this and quite effectively if it supported the W3C recommended Micropub spec. In short, it’s a standard and open source method for publishing data to a broad spectrum of surfaces so that developers don’t need to build custom solutions for each of thousands of snowflake platforms.

That is, in addition to its current functionality, you could add some code to make Hypothesis a Micropub client!

The quickest and most flexible approach I might suggest would be to allow users to publish their annotations/highlights not only to their accounts, but have UI to trigger a micropub request to their website, online notebook, or other platform.

There’s nothing more I’d want than an easy way to own all the data I’m collecting with Hypothesis and Micropub could quickly add it for a wide variety of set ups and systems. There are already implementations of Micropub servers for a variety of CMS software including WordPress, Drupal, Known, Craft, Jekyll, Kirby, Hugo, Blot, and Micro.blog with others being added, including Grav. Some of us are actively working on adding it to Wiki-related software as well. Since large portions of the Domain of One’s Own movement are built on these handful, you’d have some pretty quick coverage of not only all this space but even more.

I suspect your dev team could build an implementation in just a few days and it would open up a huge advantage for allowing users to more easily own their H related data on their own websites or in other online locations (while still utilizing the Hypothesis platform for more complex functionality).

There’s some solid documentation and a wealth of open source clients you could look at or borrow code from as well as a test suite. I suspect the IndieWeb Dev chat channel would surface a few additional developers to answer questions about any other issues as they crop up.

If you’d like a quick 5-10 minute demo of how this works for a handful of other clients in conjunction with something like WordPress, I’m happy to volunteer the time and spitball some potential ways Hypothesis could dovetail it and leverage its power.

Replied to a tweet by Ali SpittelAli Spittel (Twitter)
Nearly headless WordPress (for ubiquity and ease-of-use) + Micropub (for posting almost anything quickly) + Webmention (for cross site communication) + frosted in IndieWeb goodness = blog evolved.

Sadly, it seems like too many in the thread completely got lost on the “why” portion which was the best part of the question.

Replied to a thread (Twitter)
Lots of potential ways of shaving this yak.

The best “modern” way would be to create a Micropub endpoint and then you can use some of the excellent multi-platform Micropub clients like Quill, Omnibear, Micropublish.net, etc. The benefit of this is that you get way more than just bookmarks.

I don’t know if anyone has set one up to work with Eleventy or Netlify, but there is some prior art for other static site generators. 

The low brow solution may be to take the route I took with TiddlyWiki, but that includes some cutting and pasting, so it may be helpful, but isn’t a completely automatic solution. You’ll note there’s a reply at the bottom of the post that modified my code for use with Roam Research which also includes code for browser extensions as well.

If you want to go crazy with some .php, there’s Parse This code for a plugin for WordPress that might be co-opted. It will parse a variety of pages for microformats, JSON-LD, schema, OGP, etc. to return rich data on a huge variety of websites to give you lots of metadata to create a bookmark, but this may be over and above anything you might want. I use it as a built-in product in the Post Kinds Plugin for WordPress to create a wide variety of post types for reply contexts.

Replied to a thread by Andy MatuschakAndy Matuschak (Twitter)
This thread makes me wonder when the Hypothes.is team will be allowed to build a layer onto e-reader platforms? Another great idea might be for e-readers and note taking tools to have built-in micropub clients so I can use them to publish to my website or other platforms.
FOUR

Some of these new W3C specs include Webmention, Micropub, WebSub, IndieAuth, and Microsub. Today I’ll talk abut Webmentions which are simply site-to-site @mentions or notifications which don’t involve corporate social media silos.

For those who’d like more information about webmentions and how they could be used, I’ve written a primer for A List Apart entitled Webmentions: Enabling Better Communication on the Internet.

 

A Micropub client idea: Liveblogging!

I’ve been thinking about Twitter threads, tweetstorms and liveblogging for the better part of the week, and last night I had an idea that has stuck with me.

With the idea of Micropub allowing the ability to create updates, why couldn’t one build (or even modify) a Micropub client to create an interface to write relatively short updates with (date and timestamps to appear in the text) that, when published, concatenated that new piece of content into a longer piece of running text to send an updated Micropub request to an article or note on a site to allow that article to become an updating liveblog post?

I’m a bit shocked that no one has done it before now, and I suspect that one of the pre-existing micropub clients out there could probably add the functionality as a one day project at an upcoming IndieWebCamp.

I don’t suspect it was the sort of Micropub functionality that Kevin Marks was thinking about doing this weekend, but Noter Live comes pretty close to having a lot of this sort of UI already. Instead of just doing a single Micropub post at the end of a Twitter thread, why couldn’t it do an initial post at the beginning and then update the site with subsequent updates as it goes along while also acting as a means of syndicating the posts to Twitter and then returning those Twitter permalinks as syndication links on the user’s own site?

Replied to a tweet by Thread Reader AppThread Reader App (Twitter)
I’m happy to see the response so far. I hope it rises above the threshold for wanting to build it into ThreadReaderApp as a feature.

I’ll note, hopefully for ease of implementation, that a Micropub solution will already allow you to post to WordPress, Drupal, WithKnown, Craft, Jekyll, Kirby, Hugo, Blot, Micro.blog and others.

There is also an open source project called Silo.pub that provides a micropub endpoint for services like Tumblr, WordPress.com, Blogger, and Twitter (among others). Aaron Parecki has a public version I’m sure he wouldn’t mind if you tried.

Other platforms could quickly allow the functionality and so much more by building their own micropub servers, which would be a major boon to the social media space and the open web. 

If you have questions about implementation while building, feel free to pop into the IndieWeb chat (where prior implementers and others) are available for help. (Alternate chat modalities including Slack and IRC are available if you prefer.)

 

IndieWeb idea for the extension of ThreadReaderApp

I’d love it if ThreadReaderApp had the ability to authenticate into my personal website and publish a copy of my own tweetstorms into my blog using Micropub

This would be a great way to leverage their existing infrastructure and to allow people to put their own Tweetstorms onto their blog and solve the perennial “Why didn’t you just blog about this” commentary. 

Replied to Apps of a Feather (Apps of a Feather)
Third-party Twitter apps are going to break on August 16th, 2018.
If Twitter doesn’t love you, the IndieWeb would. I wish Twitter clients like @tweetings @twitterrific @tweetbot @TalonAndroid would support Micropub for publishing and Microsub for reading/following. Spend a few days to convert your apps and support the independent web. #BreakingMyTwitter
 
Imagine if we could use these clients not only to interact with Twitter, but almost any website on the planet? How cool would it be if I could use Twitterific to post to my WordPress website and Dries could use Tweetbot to post to post to his Drupal site? Maybe I could dump Feedly and Inoreader and dovetail Aperture to work with Tweetings or Talon to read all the content I’m interested in?
 
Manton Reece’s Micro.blog platform is an interesting multi-use case/example that has quickly usurped lots of social functionality using IndieWeb building blocks and has a handful of posting clients while it serves as a reader as well. (And of course it still allows cross-posting to Twitter as well.)
 
Since these W3C specs are full recommendations and work on the open web with dozens of implementations, it could allow social media apps/clients like those mentioned to not only gain new audience, but give them tremendously more autonomy as businesses and prevent any future social networks from pulling the rug out from underneath them the way Twitter has done in the past. The open web can bring back true competition to the space and collectively allow the community to keep innovating and creating while they’re interacting.
 

What is your creative dream for the web?

Often the IndieWeb is re-creating functionality from traditional media or the social spaces to our own sites. Who is going to innovate and turn the tide in the other direction?

Where is the avant guarde? Who is going to be the next Stan Brakhage, George Antheil, Luis Buñuel, or Walter Murch of the web?

burger lol GIF by Robbie Cobb

How can we push corporate social media back onto their heels?

I can’t wait for someone to create the next social media craze because it’s something they’re creatively posting on their own website as a media format that social silos don’t allow.

Who is experimenting with quirky multimedia posts on their websites? Who’s going to have the next meme generator/Tik Tok/SnapChat stories/inventive new functionality first? I’m imagining something in the vein of Marty’s Kapowski, Aaron’s emoji avatars, or Jeremy’s Indy maps, but I’m sure we could go crazier and push the envelope even further.

Bonus points if it’s done in the form of a micropub client! 🙂

Owning my Untappd Content

As a pre-IndieWebCamp Austin exercise, I’ve gone back and imported all of my Untappd data into my own website. It wasn’t too painful since I only had one post which didn’t include very much data.

To put the cherry on top of the dessert, I’ve created a PESOS workflow that uses my Untappd RSS feed to import future posts into my site automatically using webhooks to my Micropub endpoint. I still need to do a bit of testing and see if I can figure out if there is an mf2 prefix I should be adding to tell Post Kinds that the post is a “drink”. I suspect there isn’t since they don’t really have a microformat associated with them.

Maybe off in the future I’ll tweak the presentation of my drink posts to differentiate between coffee/tea, cocktails, beer, and other generic drinks so that I can have custom per-type icons that match up with the drink types. Maybe I can do it the same sort of way that the Post Kinds plugin has the ability to differentiate Read posts with small differences to indicate “want to read”, “reading”, and “finished”? Though honestly that type of data differentiation may be more trouble than it’s worth, particularly since I’m reading much more often than I drink.

I’ll also want to take a closer look at the IndieWeb wiki for both Untappd and drink/food posts and some other examples before deciding on anything too specific.

Featured image from page 75 of “The human body and health : an elementary text-book of essential anatomy, applied physiology and practical hygiene for schools” (1908) flickr photo by Internet Archive Book Images shared with no copyright restriction (Flickr Commons)