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…
Just a note: I did not actually get around to changing the Quill micropub request. I only updated the microformats on some read posts. I will do it manually for a little bit longer just to see if any other issues pop up, then I will add it to Quill.
For the p-read-status, what do you think about these machine-readable values to start: to-read, reading, finished? want-to-read seems verbose to me for a machine-readable value.
[duplicate]
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!!!
Syndicated copies to:
Author: Chris Aldrich
I'm a biomedical and electrical engineer with interests in information theory, complexity, evolution, genetics, signal processing, theoretical mathematics, and big history.
I’m also a talent manager-producer-publisher in the entertainment industry with expertise in representation, distribution, finance, production, content delivery, and new media.
View all posts by Chris Aldrich
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!!!
Syndicated copies to:
Author: Chris Aldrich
I'm a biomedical and electrical engineer with interests in information theory, complexity, evolution, genetics, signal processing, theoretical mathematics, and big history.
I’m also a talent manager-producer-publisher in the entertainment industry with expertise in representation, distribution, finance, production, content delivery, and new media.
View all posts by Chris Aldrich
Publishing read posts is still pretty new, so there’s a lot of experimenting and some more manual steps currently. That’s definitely not the end goal,…
Syndicated copies:
, you’re definitely seeing the sausage being made with this one! This is all very experimental stuff that only a small handful of people are working on or are interested in at the moment. Some of us want to recreate the functionality of silos like Goodreads, Library Thing, etc. I actually don’t think there are currently any tools that automate what we’re doing here, and of course it’s definitely part of your favorite expression: “manual until it hurts”. Eventually we’ll figure out how to work out the kinks/bugs, and there will be better and smoother UX/UI for all of it as well as automation, but you’ve got to start somewhere right? 🙂 Research, documentation, tests, self-dogfooding, and continued iteration with a soupçon of WWTD. I’m doing it because I used to rely heavily on Goodreads and don’t want to anymore. I’d much rather own the data on my own site, so it’s worth it to me to make the attempt manually until I’ve got things working the way I’d like. You’ll notice that this is what gRegor is also doing as he mentions in his reply. Hopefully the work we’re doing will make it easier for others who are interested in these pieces in the future.
I’m glad to hear that you’ve got Untappd squared away in a way you like. It does look really nice on your site! (Perhaps once I’m further along with reads, I’ll take a draught of it myself). If you get a moment, jump into the wiki and document what you’ve done so that others can not only see, but potentially not have to reinvent the wheel themselves. (Or at least add a link to your original post that outlines it.)
I’m sorry to hear you’re having trouble with some pieces. I will note that David Shanske, the creator of the Post Kinds Plugin has recently been working on it in conjunction with the Micropub plugin and OwnYourSwarm to make owning checkins more robust and easier to set up with WordPress. I don’t think he’s quite there yet, but I know he’s made some huge strides in the past month. If you’re interested, I recommend you catch him one evening in the chat (or via the GitHub issue queue) to let him know what problems you’re seeing/having so that things can improve. His chat handle is GWG. (Since you’re syndicating stuff to Untappd, you might also suggest he add the icon for it to the Syndication Links Plugin too since I don’t think it’s currently in the list of supported sites.)
I’m not sure which version of SNAP you’ve been using, but I feel your pain as I know it’s not always 100% solid and it’s far more complicated than it probably should be. I’m still using the older 3.8.8 version and haven’t made the major recent upgrade(s) to 4.X.X as I haven’t had time to test it out on my development server yet. It’s working well enough for my present needs, so I’m letting updating it slide for a bit while they’re working out some of the bugs that the new version has surely introduced.
I’m curious which Instagram methods you’ve tried from https://indieweb.org/Instagram? I know that many use OwnYourGram which works relatively well with most platforms including WordPress. I personally have been using DsgnWrks Instagram Importer which is somewhat similar, but as a WordPress plugin it adds a lot more WordPress specific customizations for the meta-data and data handling above and beyond OYG. I should spend some time and document what I’ve done to customize it. If that’s not your cup of tea, I know that Tantek made an Instagram export bookmarklet at IndieWebCamp LA last year that you might appreciate for cutting and pasting data more quickly to create posts.
I’ve noticed that as more and more people are using all these tools, we’re finding more bugs and quirks and they’re improving incrementally more rapidly than before, so kudos for keeping up with the changes.
I love the monkey photo you chose for the featured photo on your reply! It’s both awesome and looks how I often feel when doing these things myself.
Keep fighting the good fight!
Looks like NextScripts acknowledge some issues with SNAP Pro and Instagram.
https://www.nextscripts.com/known-issues/
Ha! I was actually writing that as a test, which I’m using to document my write-up. Since it didn’t actually flow through to your site, I didn’t think you’d see it. Apparently you were subscribed to the comment updates via email? If you did see it on your site (and moderated it out since I didn’t see it) let me know so I can change the report of the results.
This is hopefully my last test, and I should have all of the current cases covered.
It flowed through to my website. Very cool!
“Don’t let your ideas take over the things you enjoy. Some ideas can be beneficial, others are passing experiments.”
, I just noticed another example of this type of self-dogfooding/experimentation for read posts by Eddie Hinkle Owning my Reading and 100 Days of Reading Chapters. Hopefully we can all come to some type of interesting consensus that makes it easier for others in the future.
On your quest for tracking things like what you’re drinking, you might be interested to know that Aaron Parecki has a micropub client called Teacup, though I don’t know if anyone has gotten it to dovetail nicely with WordPress yet.
Khürt, I’m working on a full write up of how to effectuate webmentions via comments.
I’ll hopefully be able to post the details later today.
Looking forward to that.
This just gave me an idea…
https://github.com/dshanske/indieweb-post-kinds/issues/134
Test for a standard reply with a full link and u-in-reply-to
with a full link and a u-in-reply-to.
Test #2 with a zero width space and u-in-reply-to.
Test #3 with an empty anchor.
Test #4 with a link so as to hide the URL
Test #5 A simple reply with no URL or link of any kind and certainly therefore no u-in-reply-to class.
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:
Webmentions
Semantic Linkbacks
IndieWeb Plugin (optional)
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:
Sempress
ZenPress
Independent Publisher
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-toclass. 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-topart 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">​</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!
Syndicated copies to:
Author: Chris Aldrich
I'm a biomedical and electrical engineer with interests in information theory, complexity, evolution, genetics, signal processing, theoretical mathematics, and big history.
I’m also a talent manager-producer-publisher in the entertainment industry with expertise in representation, distribution, finance, production, content delivery, and new media.
View all posts by Chris Aldrich
Syndicated copies:
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:
Webmentions
Semantic Linkbacks
IndieWeb Plugin (optional)
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:
Sempress
ZenPress
Independent Publisher
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-toclass. 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-topart 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">​</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!
Syndicated copies to:
Syndicated copies:
Experiments with Instagram and WordPress #IndieWeb #Manual #POSSE
Syndicated copies: