It’s the holiday season and I’ve already gotten dozens of letters, emails, and calls for support for a variety of charities. Also in the wake of Patreon’s recent attempt to change their payments structure, I’ve recently seen some people attempting to set up their own payment pages to allow people to support their work or efforts on many fronts, whether they be artistic, creative, or even business-oriented.

To that end, the missing piece on the other side of the equation seems to be the profile page of sorts that identifies me as a supporter of various causes. To remedy that, I’ve created a /Supporting page as the beginning of showing which organizations, institutions, artists, and other entities which I’m actively supporting or have supported in the past.

If you’re looking for something to support yourself, I highly recommend any of the organizations which I list there. I’ve added links to the organizations themselves as well as quick links for how to support them directly.

For the technically inclined, I’ve marked up the organizations with h-cards and include their homepages with u-url and p-name microformats as well as the rel=”payment” and u-payment microformats.

What organizations are you supporting?

Virtual Homebrew Website Club Meetup on December 27, 2017

I was going to take the week off for the holidays, but seeing a group of people rally around the hashtag #newwwyear to get excited about building and updating their personal websites has inspired me to host an online Homebrew Website Club meetup during the holidays.

This is a virtual/online HWC meetup for website builders who either can’t make a regular in-person meeting in their city or don’t yet have critical mass to host one in their area. Everyone of every level is welcome to participate remotely! Don’t have a domain yet? Come along and someone can help you get started and provide resources for creating the site you’d like to have.

Virtual Homebrew Website Club Meetup

Time:  to
Location: Online via Google Hangouts (a link will be posted here or on syndicated copies of this post prior to the meetup: https://hangouts.google.com/call/8XGkwtEjxg2oH07pyOD_AAEE)

More Details

Join a community of like-minded people building and improving their personal websites. Invite friends that want a personal site.

  • Work on your #newwwyear Resolution or IndieWeb Resolutions for 2018
  • Work with others to help motivate yourself to create the site you’ve always wanted to have.
  • Ask questions about things you may be stuck on–don’t let stumbling blocks get in the way of having the site you’d like to have.
  • Finish that website feature or blog post you’ve been working on
  • Burn down that old website and build something from scratch
  • Share what you’ve gotten working
  • Demos of recent breakthroughs

A link to the virtual meetup on Google Hangouts will be posted on the day of the event. Check back before the quiet writing hours/meeting to get the link.

Optional quiet writing hour: 19:30–20:30 ET (16:30-17:30 PT) Use this time to work on your project (or get some help) before the meeting.
Meetup: 20:30–21:30 ET (17:30-18:30 PT)

Skill levels: Beginner, Intermediate, Advanced

Keep in mind that there is often a European virtual meetup if those times work better for your schedule.

Any questions? Need help? Need more information? Ask in chat: http://indiewebcamp.com/irc/today#bottom

RSVP

Add your optional RSVP in the comments below; by adding your indie RSVP via webmention to this post; or by RSVPing yes to one of the syndicated posts below:
Indieweb.org event: https://indieweb.org/events/2017-12-27-homebrew-website-club#Virtual_Americas
Facebook.com: https://www.facebook.com/events/801364280044020/
Meetup.com: https://www.meetup.com/IndieWeb-Homebrew-Website-Club-Los-Angeles/events/246071606/

 

📅 RSVP for IndieWebCamp Baltimore – Jan 20-21, 2018 – Baltimore, Maryland

RSVPed Interested in Attending https://2018.indieweb.org/baltimore
IndieWebCamp Baltimore 2018 is a gathering for independent web creators of all kinds, from graphic artists, to designers, UX engineers, coders, hackers, to share ideas, actively work on creating for their own personal websites, and build upon each others creations.
I really want to go to IndieWebCamp Baltimore not only for the IndieWeb portion, but it’s in one of my favorite cities!

If you’re interested in some of the most interesting things happening at the bleeding edge of what the web has to offer, this is the place, and these are the people. Bring your ideas and creativity for an excellent Bar Camp style weekend of fun!

Threaded Replies and Comments with Webmentions in WordPress

Introduction to what one would consider basic web communication

A few days ago I had written a post on my website and a colleague had written a reply on his own website. Because we were both using the W3C Webmention specification on our websites, my site received the notification of his response and displayed it in the comments section of my website. (This in and of itself is really magic enough–cross website @mentions!)

To reply back to him I previously would have written a separate second post on my site in turn to reply to his, thereby fragmenting the conversation across multiple posts and making it harder to follow the conversation. (This is somewhat similar to what Medium.com does with their commenting system as each reply/comment is its own standalone page.)

Instead, I’ve now been able to configure my website to allow me to write a reply directly to a response within my comments section admin UI (or even in the comments section of the original page itself), publish it, and have the comment be sent to his reply and display it there. Two copies for the price of one!

From the comments list in my Admin UI, I can write a reply and it not only lives on my site but it can now be sent as a comment to the site that made the original comment! As an example, here’s my first one and the resultant copy on the site I was replying to.

This means that now, WordPress-based websites (at least self-hosted versions running the WordPress.org code) can easily and simply allow multiple parties to write posts on their own sites and participate in multi-sided conversations back and forth while all parties maintain copies of all sides of the conversation on their own websites in a way that maintains all of the context. As a result, if one site should be shut down or disappear, the remaining websites will still have a fully archived copy of the entire conversation thread. (Let’s hear it for the resilience of the web!)

What is happening?

This functionality is seemingly so simple that one is left wondering:

  • “Why wasn’t this baked into WordPress (and the rest of the web) from the start?”
  • “Why wasn’t this built after the rise of Twitter, Facebook, or other websites which do this as a basic function?”
  • “How can I get it tout suite?!” (aka gimme, gimme, gimme, and right now!!!)

While seeming simple, the technical hurdles aren’t necessarily because there had previously never been a universal protocol for the web to allow it. (The Webmentions spec now makes it possible.) Sites like Facebook, Twitter, and others enable it because they’ve got a highly closed and highly customized environment that makes it a simpler problem to solve. In fact, even old-school web-based bulletin boards allowed this!

But even within social media one will immediately notice that you can’t use your Facebook account to reply to a Twitter account. And why not?! (While the web would be far better if one website or page could talk to another, these sites don’t for the simple economic reason that they want you using only their site and not others, and not enabling this functionality keeps you locked into what they’re selling.)

I’ll detail the basic set up below, but thought that it would be highly illustrative to have a diagram of what’s physically happening in case the description above seems a bit confusing to picture properly. I’ll depict two websites, each in their own column and color-coded so that content from site A is one color while content from site B is another color.

A diagram of where comments live when sent via webmention.
Each site composes and owns its own content and sends the replies to the other site.

It really seems nearly incomprehensible to me how this hasn’t been built into the core functionality of the web from the beginning of at least the blogosphere. Yet here we are, and somehow I’m demonstrating how to do this from one WordPress site to another via the open web in 2017. To me this is the entire difference between a true Internet and just using someone else’s intranet.

Implementation

Prerequisites

While this general functionality is doable on any website, I’ll stick to enabling it specifically on WordPress, a content management system that is powering roughly 30% of all websites on the internet. You’ll naturally need your own self-hosted WordPress-based website with a few custom plugins and a modern semantic-based theme. (Those interested in setting it up on other platforms are more than welcome to explore the resources of the IndieWeb wiki and their chat which has a wealth of resources.)

Plugins

As a minimum set you’ll want to have the following list of plugins enabled and configured:

Other instructions and help for setting these up and configuring them can be found on the IndieWeb wiki, though not all of the steps there are necessarily required for this functionality.

Themes

Ideally this all should function regardless of the theme you have chosen, but WordPress only provides the most basic support for microformats version 1 and doesn’t support the more modern version 2 out of the box. As a result, the display of comments from site to site may be a bit wonky depending on how supportive your particular theme is of the microformats standards. As you can see I’m using a relatively standard version of the TwentySixteen theme without a lot of customization and getting some reasonable results. If you have a choice, I’d recommend one of the following specific themes which have solid semantic markup:

Plugin

The final plugin that enables sending comments from one comment section to another is the WordPress Webmention for Comments plugin. As it is still somewhat experimental and is not available in the WordPress repository, you’ll need to download it from GitHub and activate it. That’s it! There aren’t any settings or anything else to configure.

Use

With the plugin installed, you should now be able to send comments and replies to replies directly within your comments admin UI (or directly within your comments section in individual pages, though this can not require additional clicks to get there, but you also don’t have the benefit of the admin editor either).

There is one current caveat however. For the plugin to actually send the webmention properly, it will need to have a URL in your reply that includes the microformats u-in-reply-to class. Currently you’ll need to do this manually until the plugin can properly parse and target the fragmentions for the comments properly. I hope the functionality can be added to the plugin to make the experience seamless in the future.

So what does this u-in-reply-to part actually look like? Here’s an example of the one I used to send my reply:

<a class="u-in-reply-to" href="https://islandinthenet.com/manually-adding-microfomats-markup/">Khürt</a>

The class tells the receiving site that the webmention is a reply and to display it as such and the URL is necessary for your webmention plugin to know where to send the notification. You’d simply need to change the URL and the word (or words) that appear between the anchor tags.

If you want to have a hidden link and still send a webmention you could potentially add your link to a zero width space as well. This would look like the following:

<a class="u-in-reply-to" href="http://www.example.com">&​#8203;​</a>

Based on my experiments, using a <link> via HTML will work, but it will send it as a plain webmention to the site and it won’t show up natively as a reply.

Sadly, a plain text reply doesn’t work (yet), but hopefully some simple changes could be made to force it to using the common fragmentions pattern that WordPress uses for replies.

Interestingly this capability has been around for a while, it just hasn’t been well documented or described. I hope now that those with WordPress sites that already support Webmentions will have a better idea what this plugin is doing and how works.

Future

Eventually one might expect that all the bugs in the system get worked out and the sub-plugin for sending comment Webmentions will be rolled up into the main Webmentions plugin, which incidentally handles fragmentions already.

Caveats

In addition to the notes above, I will say that this is still technically experimental code not running on many websites, so its functionality may not be exact or perfect in actual use, though in experimenting with it I have found it to be very stable. I would recommend checking that the replies actually post to the receiving site, which incidentally must be able to accept webmentions. If the receiving website doesn’t have webmention support, one will need to manually cut and paste the content there (and likely check the receive notification of replies via email, so you can stay apprised of future replies).

You can check the receiving site’s webmention support in most browsers by right clicking and viewing the pages source. Within the source one should see code in the <head> section of the page which indicates there is a webmention endpoint. Here is an example of the code typically injected into WordPress websites that you’d be looking for:

<link rel="webmention" href="http://example.com/wp-json/webmention/1.0/endpoint" />
<link rel="http://webmention.org/" href="http://example.com/wp-json/webmention/1.0/endpoint" />

Also keep in mind that some users moderate their comments, so that even though your mention was sent, they may need to approve it prior to it displaying on the page.

If you do notice problems or issues or have quirks, please file the issue with as full a description of what you did and what resulted as you can so that it can be troubleshot and made to work not only for you, but hopefully work better for everyone else.

Give it a try

So you’ve implemented everything above? Go ahead and write a reply on your own WordPress website and send me a webmention! I’ll do my best to reply directly to you so you can send another reply to make sure you’ve got things working properly.

Once you’re set, go forward and continue helping to make the web a better place.

Special Thanks

I wanted to take a moment to give special thanks to Aaron Parecki, Matthias Pfefferle, and David Shanske who have done most of the Herculean work to get this and related functionality working. And thanks also to all who make up the IndieWeb community that are pushing the boundaries of what the web is and what it can accomplish. And finally, thanks to Khürt Williams who became the unwitting guinea pig for my first attempt at this. Thank you all!

​​​​​​

IndieWeb and Webmentions plugin for WordPress FTW!

I don’t think I’d used it before or really seen it happening in the wild, but Khurt Williams used his website to reply to one of my posts via Webmention. I was then able to write my reply directly within the comments section of my original post and automatically Webmention his original back in return! Gone are the days of manually cutting and pasting replies so that they appear to thread correctly within WordPress!

Without all the jargon, we’re actually using our own websites to carry on a back and forth threaded conversation in a way that completely makes sense.

In fact, other than that our conversation is way over the 280 character limit imposed by Twitter, the interaction was as easy and simple from a UI perspective as it it is on Twitter or even Facebook. Hallelujah!

This is how the internet was meant to work!

A hearty thanks to those who’ve made this possible! It portends a sea-change in how social media works.

Three cheers for the #IndieWeb!!!

An update to read posts for physical books

Inspired by gRegor Morrill’s IndieWebCamp Austin project, I went back and took a look at some of my read posts, and particularly for books.

For online material, I use the Post Kinds Plugin which does a good job of adding h-cite and p-read-of (experimental) microformats classes to the data for the things I’ve read.

Because Post Kinds doesn’t (yet?) support percentage finished or number of pages read, I generally do read posts for books by hand as notes with the relevant data. So I decided to add some better mark up to my book-specific read posts and added microformats classes of h-cite, u-url, u-read-of, p-name, p-author, h-card and dt-published. I’m far from an expert on microformats, but hopefully the way I’m nesting them makes sense to parsers off in the future. (Suggestions for improvement are more than welcome.)

I like Gregor’s idea of p-read-status for things he’s posting and will have to see how I can pull that off for posts in the future (or suggest it as an addition to Post Kinds). Presently I’m just adding a want to read tag, but that could be improved to better match the functionality I appreciate in silos like Goodreads. I’ll also have to load up Gregor’s recent modifications to Quill and test them out on my site as well. I know David Shanske has expressed interest in better aligning Quill and micropub clients to post to WordPress with Post Kinds in mind.

Here’s an example of the mark up of a recent read post:

Read pages 381-461 to finish reading <span class="h-cite"><cite><a class="u-url u-read-of p-name" href="http://amzn.to/2zXnQDC" target="_blank" rel="noopener">Origin: A Novel</a></cite> by <span class="p-author h-card"><a class="p-name u-url" href="http://danbrown.com/">Dan Brown</a></span><time class="dt-published" datetime="2017-10-103 00:00:00"></time></span>

It’s also made me begin to feel itchy about some of my past quote posts and potentially revisiting them to add the appropriate h-cite and related mark up to them as well. (Or at least fix it moving forward.)

Incidentally, my real camp project was some heavy editing work on “The Book.” More on that later…

Reply to The Patreon Fiasco: Jack Conte tells creators “We ****ed up.”

Replied to The Patreon Fiasco: Jack Conte tells creators “We ****ed up.” by Todd Allen (The Beat)
The creative community is still waiting on Patreon to officially address the new policy of passing transaction fees on to the patrons (backers), but it appears that co-founder and figurehead Jack Conte has been calling some of creators to discuss the situation with them. Jeph Jacques, the cartoonist behind Questionable Content (over 5,300 patrons as of this typing. though the number of patrons as been… fluid… for many Patreon creators in the last few days) tweeted about his conversation with Conte
Perhaps coincidentally, there was a session at IndieWebCamp Austin yesterday (12/09/17) entitled Payments, Pledges, and Donations, Oh My!. The link includes the video of the session via YouTube as well as notes.

The premise is that many creators already have their own websites/platforms for promoting or featuring their work. In some sense Patreon is only bringing a payment gateway (and apparently not a great one) as their sole feature. The conversation within the session was geared toward attempting to make it easier and simpler for creators to not only host their own work, but to accept payments and recurring payments directly. Some of the discussion was geared at making the payments systems seamless so that one could move them from one platform to another without losing hard won supporters and needing to start over again.

While we’re still in the very early days for improving the technology for this, hopefully some of the demos coming out of the camp later today will move the ball forward. Those should be posted on the IndieWeb YouTube channel later today as well.

For those looking for alternates (and particularly when they’ve already got their own websites), I suspect it’ll definitely be worth a look. Alternate platforms and methods were certainly discussed. The means of control for creators to inexpensively keep all of their workflow in-house is very near.

Group Photo at IndieWebCamp Austin 2017

Friends who attended IndieWebCamp Austin today.
Photo of 14 of the IndieWebCamp Austin attendees
Friends who attended IndieWebCamp Austin today.

👤 Tom Brown (); Aaron Parecki (); David Shanske (); Tantek Çelik (); Marty McGuire (); Manton Reece ()

I wish I could have attended IndieWebCamp Austin in person today, but had a good time attending remotely! Thanks to everyone who made the remote experience so usable.

I’m also posting this in part to take a half-stab at person tagging people using homepage webmentions after the last session on post types in which Tantek mentioned tagging specifically. I can already tell this is something I wouldn’t do often without a much more automated system. #manualuntilithurts indeed!

I’ve also found a bug in Twitter in the process! Apparently I can tag people in photos there except for Tantek, who’s username is so short, it won’t populate their pull-down menu to let me add him.

Alpha Release of Linkback Module for Drupal 8 with Webmention Support [8.x-1.0-alpha1]

Bookmarked Alpha Release of Linkback Module for Drupal 8 with Webmention Support [8.x-1.0-alpha1] by Dan FeidtDan Feidt (Drupal.org)
We are proud to bring you the first alpha release of Linkback, an interesting suite of modules which can help integrate your website with the wider internet. Linkback provides the backend functionality to save both outgoing and incoming pings and webmentions involving remote sites.
Drupal 8, now (along with platforms like WithKnown, Perch, WordPress, Craft, Kirby, ProcessWire, Elgg, and Django) has Webmention support. Congratulations to Dan Feidt (aka HongPong) and everyone involved!

This means that more websites can communicate directly with each other on the open and decentralized web. (Wouldn’t you like to “@mention” someone from your own website to theirs?) It’s a rapidly growing reality on the internet.​​​​​

🎧 This Week in the IndieWeb Audio Edition • November 26th – December 2nd, 2017

Listened to This Week in the IndieWeb Audio Edition • November 25th - December 2nd, 2017 by Marty McGuireMarty McGuire from martymcgui.re
You can find all of my audio editions and subscribe with your favorite podcast app here: martymcgui.re/podcasts/indieweb/. Music from Aaron Parecki’s 100DaysOfMusic project: Day 85 - Suit, Day 48 - Glitch, Day 49 - Floating, Day 9, and Day 11 Thanks to everyone in the IndieWeb chat for their feedback and suggestions. Please drop me a note if there are any changes you’d like to see for this audio edition!

Sometimes it feels like I’ve got a bookmarklet (not unlike Huffduffer, but with a twist) that I use throughout the week, and at the end someone lovingly hand-creates a synopsis podcast just for me! Thanks Marty!!

Reply to doesn’t link back by Khürt Williams

Replied to doesn’t link back by Khürt Williams (Island in the Net)
I ran my domain through IndieWebify.me. Almost all of the rel=“me” links either don’t link back or couldn’t be fetched. The following work perfectly and can be used with the IndieAuth authentication plug-in. GitHub Flickr Goodreads Twitter That’s 4 out of 43.
Khürt , The majority of them don’t link back because the silos (like Keybase, Instagram, and Medium which you mention) aren’t putting the rel=”me” microformat on the URLs in your profile like Twitter, Github, and Flicker do. If you view the page source for those silos, you’ll see that they list your URL, but don’t have rel-me’s pointing back at you. Sadly, you can’t control these, though you could file issues with the sites that don’t to encourage them to.

The indiewebify.me site has a parser that is looking at the two sites to see that they not only point at each other, but it requires that the two links have the rel=”me” microformat on them. Most don’t, but this doesn’t mean too much in practice. Whether or not they both have rel=”me”, the only way both sites could point at each other indicates that you “own” or control them both. Kevin marks has proposed/built an interesting decentralized verification service based on them. His version is certainly much better distributed than Twitter’s broken verification set up.

Other than having a stronger two-way ownership indicator, what do you get out of them? As you mention, some have the ability to be used with IndieAuth. Those that can be used with IndieAuth are relying on the service (like Twitter or Github) having a OAuth implementation for signing into their services. This allows an indie site to piggyback on another services’ OAuth implementation without having to go through the trouble to build one themselves, which can be a lot of work to do, much less do correctly (securely). Most of the services you see not linking back not only don’t add the rel=”me” tag, but they also don’t support OAuth, so you wouldn’t get too much more out of having the correct reciprocal link anyway.

Incidentally, one of the benefits the rel=”me” links do have is that they allow you to use your website to log into the IndieWeb wiki to participate directly in that part of the community. (Give it a try!)

Some services like Brid.gy get around services like Instagram or Facebook not having a physical rel=”me” microformat because they’re relying on looking at the appropriate data (usually via API) on your profile page to see if it links back (either in your website field or typically in your bio).

Don’t be overly concerned that the vast majority of sites appear not to link back even if you’ve got links on both pointing back. (And if you think your batting average is bad with only 4 of 43, just imagine how many of my 200+ sites do?!)

If you want to see an interesting tech-forward application of rel=”me” and the XFN friends network, take a peek at Ryan Barrett’s Indie Map which he unveiled over the summer:

Some of these building blocks will likely add a lot more value later on as more and more sites explicitly indicate their relationship to and from each other.

I really love that I can post an event on my website and people can use their own websites to RSVP to it. It’s so simple, but it feels so magical.

Even better, the Webmention plugin and the Semantic Linkbacks plugin allows for a beautiful display of the responses.
FTW!

Facepiled RSVPs for vHWC

Thanks David Shanske, Matthias Pfefferle, Ryan Barrett, and everyone else in the IndieWeb community who has either helped to create and/or  supports the web standards that allow for the internet to work the way one expects it should.

Want to try it out? Visit the event post for instructions. You can also RSVP on the copy I syndicated to Facebook and your response will show up on the list on my site as well.