Introduction
What follows may tend toward the jargon-y end of programming, but I’ll endeavor to explain it all and go step-by-step to allow those with little or no programming experience to follow along and use the tools I’m describing in a very powerful way. I’ll do my best to link the jargon to definitions and examples for those who haven’t run across them before. Hopefully with a bit of explanation, the ability to cut and paste some code, or even make some basic modifications, you’ll be able to do what I and others have done, but without having to puzzle it all out from scratch.
Most readers are sure to be aware of the ubiquitous “share” buttons that appear all over the web. Some of the most common are “share to Facebook” or “share to Twitter”. In my examples that follow, I’m doing roughly the same thing, but I’m using technology called webhooks and micropub to be able to share not just a URL or web address, but a variety of other very specific data in a specific way to my website.
This “share”–while a little more complicated–gives me a lot more direct control over the data I’m sending and how it will be seen on my website. I would hope that one day more social websites will have built in share buttons that allow for direct micropub integration so that instead of only sharing to corporate sites like Facebook, Twitter, et al. they’ll let people share directly to their own personal websites where they can better control their online identity and data. What I’m describing below is hopefully a temporary band-aid that allows me to keep using common social services like Pocket, YouTube, Meetup, Goodreads, Letterboxd, Diigo, Huffduffer, Reading.am, Hypothes.is, and hundreds of others but to also post the content to my site so that I own and control more of my own online data.
An example using Pocket
Following in the footsteps of Charlotte Allen and Jan-Lukas Else, I’ve been tinkering around with improving some of my syndication workflows for a number of social silos including Pocket, a social silo that focuses on bookmarking material to read later.
I have long used IFTTT (aka If This, Then That), a free and relatively simple web service that allows one to create applets that tie a large number of web-based and social services together, to send data from my Pocket account to my WordPress-based website. I’d done this using my Pocket RSS feed to create WordPress draft posts that I could then modify if necessary and publish publicly if I desired. Since I regularly use a number of Micropub clients in conjunction with the WordPress Micropub plugin and IFTTT supports webhooks, I thought I’d try that out as a separate process to provide a bit less manual pain in mapping the data for posts to appear like I want them to on my website.
Now I can use my Pocket account data and map most of it directly to the appropriate data fields on my website. Because Pocket has direct integration into IFTTT, I can actually get more data (particularly tags) out of it than I could before from the simple RSS feed.
Below, you’ll find what I’ve done with a quick walk through and some example code snippets. I’ll break some of it down into pieces as I go, and then provide a specific exemplar of some of the code properly strung together at the end. I’ll also note that this general procedure can be used with a variety of other silos (and either their integrated data or RSS feeds) within IFTTT to post data to your website. Those running platforms other than WordPress may be able to use the basic recipe presented here with some small modifications, to send similar data from their accounts to their sites that support Micropub as well.
Directions for connecting IFTTT to publish to WordPress via Micropub
Preliminaries
Install and activate the Micropub plugin for WordPress. This will give your website a server endpoint that IFTTT will use to authenticate and send data to your website on your behalf.
If you don’t already have it, install the IndieAuth plugin for WordPress and activate it. This will allow you to generate an authorization token (think password) with the appropriate scopes (think permissions to do specific actions on your website) to allow IFTTT to securely post to your website.
Within the WordPress administrative interface/dashboard go to Users >> Mange Tokens or go to the path /wp-admin/users.php?page=indieauth_user_token on your website.
At the bottom of that page under the section “Add Token” add a convenient name for your new token. You’ll see in the following screencapture that I’ve used “IFTTT for Webhooks”. Next click the check boxes to add scopes for “create” and “media”. Finally click the “Add New Token” button.

On the resulting page, copy the entirety of the returned access token in a safe place. You’ll need this token later in the process and once you’ve navigated away from the page, there’s no way to retrieve the token again later. The same token can be used for multiple different recipes within IFTTT, though one could create a different token for each different recipe if desired.
Sign up for an IFTTT account (if you don’t already have one).
Register Pocket as a service you can use within IFTTT.
The IFTTT Applet
In your IFTTT.com account, create a new applet.

For the “if” part of the applet, search for and choose the Pocket application.

Choose the trigger “Any new item” (other triggers could be chosen for different combinations of actions).
Click the “then” part of the applet, and search for and chose the Webhooks application.

Choose the “Make a web request” option (currently the only option on the page).

Next we’ll fill in the action fields.

Fill in the four action fields with the following values, with the appropriate modifications as necessary:
URL: https://www.example.com/wp-json/micropub/1.0/endpoint
Be sure to change example.com to the appropriate URL for your website. If you’re using a platform that isn’t WordPress in combination with the Micropub plugin, you can quickly find your appropriate endpoint by looking at your homepage’s source for a <link> element with a rel="micropub" attribute.
Method: POST
Content Type: application/x-www-form-urlencoded
More advanced users might experiment with other content types, but this will naturally require different data and formatting in the Body section.
Body:
The Body portion is one of the most complicated portions of the operation, because this is where you can get creative in how you fill this out and the end results you end up with on your website. You can use the available variables in the recipe to custom create almost anything you like and some services will give you a tremendous amount of flexibility. I’ll walk through a handful of the most common options and then tie them all together at the end. Ultimately the Body will be a string of various commands that indicate the data you want to send to your website and all of those commands will be strung together with an ampersand character (“&“) between each of them.
There are some small differences you may want to experiment with in terms of what you put in the Body field based on whether or not you’re using the Post Kinds plugin to create your posts and reply contexts or if you’re not.
Depending on which pieces you choose, I recommend doing a few test runs for your applets to make sure that they work the way you expect them to. (The Micropub plugin has a setting to mark incoming posts automatically as drafts, so you’re not spamming your readers while you’re testing options if you’re testing this on a live site.) Sometimes formatting issues (particularly with setting a publish time) may cause the post to fail. In these cases, experiment to find and excise the offending code and see if you can get things working with minimal examples before adding additional data/details.
For those who would like to get into more advanced territory with the programming and methods, I recommend looking at the W3C’s Webmention specification.
The first thing you’ll want in the Body will be your access token. This is similar to a password that allows the webhook to publish from IFTTT to your website. You’ll want a line that reads as follows with the AccessTokenHere replaced with the access token from your token provider which you created earlier and saved. You’ll want to keep this secret because it acts like a password for allowing remote applications to post to your website.
access_token=AcessTokenHere
Next will come the content you want to be published to your site.
&content=<<<{{EntryTitle}}<br>{{EntryPublished}}>>>
I’ll mention that the content snippet can include almost anything you’d like using the variables provided by IFTTT as well as a reasonable variety of HTML. I’ve used it to add things like <blockquotes> for annotations and even <audio> tags for making listen posts or bookmarking audio with Huffduffer!
The following snippet tells your site what kind of content it’s receiving. Unless you’re doing something more exotic than bookmarks, likes, favorites, replies, or most post kinds (except maybe events), you’ll want to use the h-entry snippet as follows:
&h=entry
If you’d like your post to contain a formal title, then you’ll want to include the following code snippet. Generally with shorter content like notes/status updates, bookmarks, reads, likes, etc., I follow the practice of publishing titleless posts when they’re not required, so I personally skip this piece in most of my posts, but some may wish to include it.
&name=<<<{{Title}}>>>
To have your website create or use the correct category or tag taxonomies on your posts, you’ll want to have something similar to the following snippet. If you want to specify more than one category, just string them together with ampersands. If your category/tag has a blank space in it you can replace the spaces with %20. The Micropub server on your site should automatically check to see if you have categories or tags that match what is sent, otherwise it will create a new tag(s).
&category[]=Bookmark&category[]=Social%20Stream
I’ve found that in practice, some silos that allow for multiple tags will actually publish them via micropub using something along the lines of the following if the appropriate variables on IFTTT exist. In these cases, I append this to the other categories and tags I want to specify.
&category[]=<<<{{Tags}}>>>
If you’re using your Pocket account to send your bookmarked articles to read later, you’ll want to create a bookmark with the following line:
&bookmark-of=<<<{{EntryUrl}}>>>
Alternatively, if you were using your Pocket account to archive your articles once you’ve actually read them, you could have IFTTT post these archived items as “reads” to your site by choosing the “New Item Archived” element in the Pocket portion of the IF set up process. Here you’d replace the above bookmark-of line with the following:
&read-of=<<<{{EntryUrl}}>>>
If you were creating different sorts of posts you might also use the appropriate alternate verbiage: like-of, watch-of, listen-of, rsvp, etc. (find details for the appropriate mark up on the IndieWeb wiki or the correct microformats v2 property within the code for the Post Kinds plugin). If you are using the Post Kinds plugin, this is the piece of data that it receives to specify the correct post kind and create the reply context for your post and will likely preclude you from needing to send any data in the content portion (above) unless the services applet will let you send additional commentary or notes that you want to appear in the body of your post.
Next, if your site supports syndication links with a plugin like Syndication Links for WordPress, you would use the following line of code so that those are set and saved properly. (This presumes that the URL specified is the permalink of the content on the social silo. I’ll note that Pocket doesn’t provide these (easily) as most of their links are canonical ones for the original content, so I don’t use this on my IFTTT recipe for my Pocket workflow, but I do use it for others like Huffduffer and Reading.am. It conveniently allows me to find copies of my content elsewhere on the web.)
&syndication=<<<{{EntryUrl}}>>>
If you’d like to have the timestamp on your post match the time when you actually bookmarked the item in Pocket, you’ll need to add the following line of code. Without this line, the publication time will match the time of the Webhook action, which for most IFTTT things can be a delay of a minute or two up to an hour or more afterwards. In practice, I’ve noticed that most content posts to my website within about 10-15 minutes of the original, and this is based on the polling lag within IFTTT checking your triggers. (Sadly, I’ll report that I’ve never gotten this code snippet to work for me in practice, and I suspect it may be because the time format from IFTTT doesn’t match what is expected by the Micropub server on my website. Perhaps David Shanske or Ryan Barrett may have a more specific idea about what’s causing this or suggest a fix? I’ll try to dig into it shortly if I can. As a result, I generally have left this snippet of code off of my triggers and they’ve worked fine as a result. Until this issue might be fixed, if you want to have the exact timestamp, you could alternately include the data, if provided, in the content section instead and then copy it over manually after-the-fact.)
&published=<<<{{EntryPublished}}>>>
If you’ve got syndication endpoints set up properly with something like the Syndication Links plugin, you can use the following sort of code snippet. I generally eschew this and prefer to save my posts as drafts for potential modification prior to publishing publicly, but others may have different needs, so I’m including the option for relative completeness so people can experiment with it if they like.
&mp-syndicate-to[]=twitter-bridgy
This concludes the list of things that might commonly be included in the Body portion of the IFTTT applet. Tying these all together for combination in the Post Kinds Plugin one would want something along the lines of :
Body:access_token=AccessTokenHere&content=<<<{{EntryTitle}}<br>{{EntryPublished}}>>>&h=entry&category[]=Bookmark&category[]=Social%20Stream&bookmark-of=<<<{{EntryUrl}}>>>
Here’s another example of the code I use in conjunction with a similar applet for Diigo, a bookmarking service. The “Description” portion allows me to add a note or comment on the bookmark when I make it and that note is transported over to the post on my website as well.
Body: access_token=AccessTokenHere&content=<<<{{Description}}>>>&h=entry&category[]=Bookmark&category[]=Social%20Stream&category[]=<<<{{Tags}}>>>&bookmark-of=<<<{{Url}}>>>
Note that when the string of commands is done, you do not need to have a trailing ampersand. Most of the examples I’ve used are from the Pocket set up within IFTTT, but keep in mind that other services on the platform may use alternate variable names (the portion in the braces {{}}). The differences may be subtle, but they are important so be careful not to use {{EntryTitle}} if your specific recipe expects {{Title}}.
To finish off making your new applet, click on the “Create Action” button. (If necessary, you can test the applet and come back to modify it later.)
Finally, give your applet an appropriate tile and click the “Finish” button. For my Pocket applet I’ve used the name “Pocket bookmark PESOS Micropub to WordPress”.

Now that your applet is finished, give it a whirl and see if it works the way you expect! Don’t feel discouraged if you run into issues, but try experimenting a bit to see if you can get the results you’d like to see on your website. You can always go back to your applet recipe and modify it if necessary.
Conclusion
Hopefully everyone has as much fun as I’ve had using this workflow to post to their websites. It may take some patience and experimentation to get things the way you’d like to have them, but you’re likely to be able to post more easily in the future. This will also let you own your data as you create it while still interacting with your friends and colleagues online.
I know that it may be possible to use other services like Zapier, Integromat, Automate.io, or other similar services instead of IFTTT though some of these may require paid accounts. I’d love to see what sorts of things people come up with for using this method for owning their own data. Can you think of other services that provide webhooks for potential use in combination with Micropub? (Incidentally, if this is your first foray into the Micropub space, be sure to check out the wealth of free Micropub clients you can use to publish directly to your website without all of the set up and code I’ve outlined above!)
Currently I’m using similar workflows to own my data from social services including Pocket, Diigo, Huffduffer, Reading.am, YouTube, Meetup/Google Calendar, and Hypothes.is. I’ve got several more planned shortly as well.
Thanks once again to Charlotte Allen and subsequently Jan-Lukas Else for the idea of using Micropub this way. Their initial documentation was invaluable to me and others are sure to find it useful. Charlotte has some examples for use with Facebook and Instagram and Jan-Lukas’ example may be especially helpful for those not using WordPress-specific solutions.
And as always, a big thank you to the entire IndieWeb community for continuing to hack away at making the web such a fun and vibrant space by making the small building blocks that make all of the above and so much more possible.
This Article was mentioned on jvt.me
Syndicated copies:
Recommended read: If This, Then Publish to My Website! boffosocko.com/2020/01/21/usi… (jvt.me/mf2/2020/01/wy…)
Hope you enjoy it Craig.
I thought most of the themes accounted for it, but for the posts (bookmarks, likes, etc.) that generally wouldn’t have a title, you can use the following line in your style.css file or in the customizer’s Additional CSS field to hide the date/time stamp titles on your posts:
.kind-note .entry-title,.kind-bookmark .entry-title,.kind-reply .entry-title,.kind-like .entry-title,.kind-favorite .entry-title,.kind-photo .entry-title,.kind-tag .entry-title,.kind-rsvp .entry-title,.kind-listen .entry-title,.kind-watch .entry-title,.kind-checkin .entry-title,.kind-wish .entry-title,.kind-play .entry-title,.kind-weather .entry-title,.kind-exercise .entry-title,.kind-travel .entry-title,.kind-eat .entry-title,.kind-drink .entry-title,.kind-follow .entry-title,.kind-jam .entry-title,.kind-read .entry-title,.kind-quote .entry-title,.kind-annotation .entry-title,.kind-highlight .entry-title,.kind-acquisition .entry-title {display:none}Hopefully it works. 🙂 I think I’ve got all the common ones listed, but it should be easy to add others based on the general pattern above.
Januari is nog niet voorbij maar dit decennium begint al lekker pittig zeg, poehéé! (shoutout naar Tommie!) 🐻 Van onthullingen rondom gezichtsherkenningsoftware tot gehackte telefoons van internet-miljardairs. Maar goed dat het volgende week dinsdag de Europese Dag van de Privacy is. De Privacy Awards worden uitgereikt maar verder kan ik er weinig spectaculairs over vinden. Is er publieke belangstelling voor?
De afgelopen week was ik veel bezig met mijn werk en het zijproject ThanksForSubscribing (Maak je inbox blij!) waardoor mijn dagelijkse intake van Indieweb en Open web nieuws wat achter bleef. Maar niet getreurd, ik heb weer mooie links voor je!
Tegelijk ben ik wel benieuwd, waar zou jíj meer over willen lezen? Wat trekt je naar mijn nieuwsbrief om hem te openen en waar klik je graag op door? Klik reply en laat het me weten!
On with the show! ⚡
Bedek je gezicht terwijl je dit leest! 👇
[tweet https://twitter.com/kashhill/status/1218510902556811264%5D
Clearview(💶 🔐) is ineens de Cambridge Analytica van dit jaar. De onthullingen van New York Times over de gezichtsherkenning software van dit nog onbekende bedrijf kwamen wel even binnen. Minority Report is bijna binnen handbereik. Het zal misschien niet via Clearview zijn maar de geest is nu wel uit de fles. Het web wordt continu geschraapt voor beeldmateriaal en in databases gestopt om later te matchen met politiebeelden, foto’s van activisten, journalisten, of een willekeurige minderheid die niet bevalt bij een overheid. Buckle up voor meer van deze onthullingen.
Meer over het open web 🔗
Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub — boffosocko.com
🔗 In deze titel staan al boelveel moeilijke woorden maar geloof me, je kunt het. If This Then That is een superhandige dienst om allerlei apps aan elkaar te knopen en Chris laat je zien hoe je dit voor je eigen site kunt gebruiken. Het vereist een beetje zweet, spuug en doorzettingsvermogen, maar deze digitale ductape is geweldig om mee te werken! Kom je er niet uit? Ik help je wel verder.
IndieWebGuides — indiewebguides.org
🛠️ Meer knutselvreugde op het web! Met deze IndieWebGuides kun je zelf aan de slag om meer eigenaarschap te krijgen over je domein en data.
Could this plan make Facebook obsolete? | WIRED UK — http://www.wired.co.uk
🗣️ Je digitale identiteit wordt door allerlei sociale silo’s opgesplitst, beoordeeld, geindexeerd en verkocht. Identiteits-activist Kaliya Young heeft een plan om dat te veranderen en om technologie weer gelijkwaardig voor iedereen te maken!
Badaboom badabing, dat was het weer voor deze week! Je kunt altijd eerdere edities teruglezen in het archief en tip me gerust als je iets interessants tegenkomt voor deze nieuwsbrief. Dat mag via email, Twitter, webmention of een leuke kaart in de post. Of gewoon als reply op deze mail.
Blog on!
Thanks for the super clear guidelines – as always very well explained. I was able to get PESOS from Pocket and Feedly working through IFTTT as well on my Known CMS site. IFTTT is sending POST requests to my micropub endpoint and Known is happily accepting the accesstoken, yet when I see the response of the action in IFTTT it always says “Failed”. I’ve checked the response with POSTMAN and Known is responding with a status code 200 – as it should? – so it’s okay for now, as it works; but was wondering why IFTTT is flagging the actions as failed?
As long as it works? ¯\_(ツ)_/¯
Might be worth reporting as a bug to IFTTT though.
yes! i’ve been advocating this kind of thing for a while, eg PESOS for Bridgy Publish and Backfeed without code, but i’ve never actually implemented it. awesome trailblazing!
How slick! The WordPress Micropub server supports experimental properties so you can add
&post-status=draftto your IFTTT webhook-based recipes for Micropub PESOS syndication. This is useful in cases where you can get most of the data fidelity you’d like to have, but still may want to go back and modify things before publishing them.Next I’ll have to try out
&visibility=privatewhich should work as well.Syndicated copies:
This Article was mentioned on daveymoloney.com
Today I accidentally realized that both the WordPress Micropub server and the Post Kinds plugin support
read-statusvalues of “to-read”, “reading”, and “finished”. I’ve managed to tweak my PESOS work flow with Goodreads.com to also include these experimental pieces using the following additional snippets of code appended to the “Body” fields I’ve described before:&read-status=to-read&read-status=reading&read-status=finishedI’ve added one of the three snippets to the appropriate IFTTT.com recipes for Goodreads feeds to create the appropriate output. Here’s the first post I’ve made using the new recipe for bookmarking a book I’d like to read: https://boffosocko.com/2020/02/15/meditations-marcus-aurelius/.
Previously I’ve been using simple notes to create read posts for books and just adding a “read” category to give me more control over the data in the posts. (I only used read posts previously for online articles.) Now that I’ve got the ability to provide some better differentiation for my progress, I think I’ll switch to using read posts for all my reading (books and articles).
Incidentally following IndieBookClub.biz and Indigenous for Android which added support for these earlier today, my method may be the third to use these microformats in the wild. Thanks to gRegor Morrill, Kristof De Jaeger, David Shanske, Ryan Barrett, and Charlotte Allen for their prior work, experimentation, code, and examples for allowing me to get this working on my website.
Syndicated copies:
Today I accidentally realized that both the WordPress Micropub server and the Post Kinds plugin support
read-statusvalues of “to-read”, “reading”, and “finished”. I’ve managed to tweak my PESOS work flow with Goodreads.com to also include these experimental pieces using the following additional snippets of code appended to the “Body” fields I’ve described before:&read-status=to-read&read-status=reading&read-status=finishedI’ve added one of the three snippets to the appropriate IFTTT.com recipes for Goodreads feeds to create the appropriate output. Here’s the first post I’ve made using the new recipe for bookmarking a book I’d like to read: https://boffosocko.com/2020/02/15/meditations-marcus-aurelius/.
Previously I’ve been using simple notes to create read posts for books and just adding a “read” category to give me more control over the data in the posts. (I only used read posts previously for online articles.) Now that I’ve got the ability to provide some better differentiation for my progress, I think I’ll switch to using read posts for all my reading (books and articles).
Incidentally following IndieBookClub.biz and Indigenous for Android which added support for these earlier today, my method may be the third to use these microformats in the wild. Thanks to gRegor Morrill, Kristof De Jaeger, David Shanske, Ryan Barrett, and Charlotte Allen for their prior work, experimentation, code, and examples for allowing me to get this working on my website.
Syndicated copies:
IntroductionThis post has been heavily inspired by Chris Aldrich’s recent post Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub and finally finds an answer to the frustration I had ever since I realised it was not that easy to post bookmark on my Known-based website.When you own an IndieWeb website, it quickly becomes clear that you want to centralize all your content in one place, including the posts you save on Reddit.Now, I spend a fair amount of time on Reddit, but i never spend a long time in one go, meaning I usually scroll my feed, save things that catch my eyes, and come back to them later on when I have more time. The frustration comes from the decentralized part : I have saved bookmarks on my browser, in my company’s Slack, on Reddit, you name it. The risk is that I finally forgot about some of them and never reads them at all.If you need more information on IndieWeb, IFTTT, and why this is awesome, I encourage you to read Chris Aldrich’s post. In this post, I’ll only talk about the particular case I ran into : silo-ing my Reddit saved posts to a Known-based website.Getting a tokenIf you played a bit with Known, you know there’s no easy way to generate a token on the fly – as opposed to a WordPress-based website for instance. But that’s OK, Give Me A Token is here to save the day. The process is not that long nor difficult, and at the end of step 3, you’ll have the possibility to download your token file, save it on your disk for later, that’s all we need to do with that right now.The IFTTT recipeWe can now start to create our own IFTTT applet, in the first part (the if), we’ll choose Reddit > New post saved by you as a trigger and i the second (the then), we’ll choose Webhooks > Make a web request.All we have left to do is to fill in the 4 fields in the form :
URL: your micropub server endpoint (find yours here)Method: POSTContent Type: application/x-www-form-urlencodedThe
Bodypart is the trickiest, but once again I encourage you to ready Chris’s post which explain it thoroughly. As far as i’m concerned here’s what I typed in theBodyfield – don’t forget to replace YOUR_TOKEN_FILE_CONTENT_HERE by the content of the file we previously downloaded :And that’s it. All you have to do now is going back on Reddit and save a few posts, IFTTT should shortly trigger your webhook call and syndicate your saved posts on your own website. SyndicationIndieNews
en/indieweb
Medium
Syndicated copies:
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)
Syndicated copies:
Wow. This is involved! Is it worth it?
Trust me that figuring it out was WAY more complicated. The write up is involved, but I’ve now used the general formula about 20 different times for various silos. It only takes me a few minutes to set up a new silo if necessary, but I’ve found that in general it’s solidly reliable and does the job for me. I really love that I’ve found something that works better than anything else I’ve come across.
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.
Syndicated copies:
I created a video overview/walkthrough of how I take highlights and annotations on Hypothes.isHypothes.is and feed them through to my WordPress Website using RSS and IFTTT.com.
I suspect that a reasonable WordPress user could probably set up a free Hypothes.is account and use the RSS feed from it (something like
https://hypothes.is/stream.atom?user=username) to create an IFTTT.com recipe to post it as a public/draft to their WordPress website.My version presented here has also been augmented by also using the Post Kinds Plugin to which I’ve manually added a custom annotation post type along with some CSS for the yellow highlight effect. These additional coding flourishes aren’t absolutely necessary for those who just want to own the data on their website.
If you want to get even fancier you could also do RSS to IFTTT to do a webhook post to an Micropub endpoint or custom code your own solution using their API. Lots of options are available, the most difficult part may be knowing that something like this could even be done.
Syndicated copies:
I just automated my creating stars on Github to syndicate that intent and data (by PESOS) back to my website as bookmarks. Here’s an example on my site.
This is done using a variation of Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub.
As part of this I used the feed pattern https://github.com/{{username}}.atom to input a feed which I’m filtering with my username and the word “starred” to pull out the correct items to syndicate.
I couldn’t find a permalink URL for the star itself, so I’m adding a syndication link that points to the page of “stargazers” for the individual repo that I’m bookmarking.
While GitHub calls these stars and I might have mapped them to “likes” on my website, I’ve always thought of my intent as more of a bookmark. In practice I often use my stars as bookmarks for things I want to come back to visit on their site anyway. Since it’s my website and I have the control, I get to choose. Of course I also have the facility to create a star post kind on the site too, but the semantic difference just doesn’t warrant the work.
Now to figure out how I might extract out all of my prior data to backfill old bookmarks like this…
I’ve now got about 20 webhooks set up to pull back data out of silos like this including ones for GoodReads, GitHub, Hypothes.is, Last.fm, Spotify, Untappd, Twitter, Letterboxd, Diigo, Reading.am, Huffduffer, Google Calendar, Meetup.com, YouTube and Pocket.
Syndicated copies:
I don’t have a specific “Edit” post kind on my website (yet!), but I’ve set things up–using a prior recipe–so that edits I make to the IndieWeb wiki are syndicated (via PESOS) to the Micropub endpoint on my website to create draft posts on my personal website!
Presently they were easiest to map to my website as bookmarks until I can create the UI to indicate edits, but changing the UI piece, and retroactively modifying some data for posts, should be fairly simple and straightforward for me.
I’m not sure I’ll keep the entire diff content in the future, but may just keep the direct text added depending on the edit and the potential context. We’ll play around and see what comes of it. It’s reasonably sure that I may not post everything publicly either, but keep it as either a draft or private post on my website. In some cases, I may just add the edit syndication link on an original bookmark, read, watch, or other post type, a pattern which I’ve done in the past for articles I’ve read/bookmarked in the past and simply syndicated manually to the wiki.
I’ll also need to tinker with how to save edits I make directly in the chat channels via Loqi, though I think that is straightforward as well, now that the “easy” part has been done.
I only wish I had thought to do this before I made the thousands of edits to the wiki earlier this week. Both IndieWebCamp West 2020 and the edits for part of organizing that were the inspiration for finally getting around to doing this.
This isn’t as slick as the process Angelo Gladding recently did a demo of and is doing to syndicate his edits to the wiki from his website using a POSSE syndication workflow, but I’ll guarantee my method was way less work!
Also, since my edits to the wiki are made as CC0 contributions, the POSSE/PESOS flow doesn’t make as much difference to me as it might on other social silos.
I don’t edit Wikipedia incredibly often, but perhaps I set that functionality up shortly too.
Here’s the first example (public) post: https://boffosocko.com/2020/06/30/55772818/
I’ll get around to fixing the remainder of the presentation and UI shortly, but it’s not a horrific first pass. It’s at least allowing me to own copies of the data I’m putting out on the Internet.
Syndicated copies:
tl;dr
It’s too painful to quickly get frequent notes into note taking and related platforms. Hypothes.is has an open API and a great UI that can be leveraged to simplify note taking processes.
Note taking tools
I’ve been keeping notes in systems like OneNote and Evernote for ages, but for my memory-related research and work in combination with my commonplace book for the last year, I’ve been alternately using TiddlyWiki (with TiddlyBlink) and WordPress (it’s way more than a blog.)
I’ve also dabbled significantly enough with related systems like Roam Research, Obsidian, Org mode/Org Roam, MediaWiki, DocuWiki, and many others to know what I’m looking for.
Many of these, particularly those that can be used alternately as commonplace books and zettelkasten appeal to me greatly when they include the idea of backlinks. (I’ve been using Webmention to leverage that functionality in WordPress settings, and MediaWiki gives it grudgingly with the “what links to this page” basic functionality that can be leveraged into better transclusion if necessary.)
The major problem with most note taking tools
The final remaining problem I’ve found with almost all of these platforms is being able to quickly and easily get data into them so that I can work with or manipulate it. For me the worst part of note taking is the actual taking of notes. Once I’ve got them, I can do some generally useful things with them—it’s literally the physical method of getting data from a web page, book, or other platform into the actual digital notebook that is the most painful, mindless, and useless thing for me.
Evernote and OneNote
Older note taking services like Evernote and OneNote come with browser bookmarklets or mobile share functionality that make taking notes and extracting data from web sources simple and straightforward. Then once the data is in your notebook you can actually do some work with it. Sadly neither of these services has the backlinking functionality that I find has become de rigueur for my note taking or knowledge wrangling needs.
WordPress
My WordPress solutions are pretty well set since that workflow is entirely web-based and because WordPress has both bookmarklet and Micropub support. There I’m primarily using a variety of feeds and services to format data into a usable form that I can use to ping my Micropub endpoint. The Micropub plugin handles the post and most of the meta data I care about.
It would be great if other web services had support for Micropub this way too, as I could see some massive benefits to MediaWiki, Roam Research, and TiddlyWiki if they had this sort of support. The idea of Micropub has such great potential for great user interfaces. I could also see many of these services modifying projects like Omnibear to extend themselves to create highlighting (quoting) and annotating functionality with a browser extension.
With this said, I’m finding that the user interface piece that I’m missing for almost all of these note taking tools is raw data collection.
I’m not the sort of person whose learning style (or memory) is benefited by writing or typing out notes into my notebooks. I’d far rather just have it magically happen. Even copying and pasting data from a web browser into my digital notebook is a painful and annoying process, especially when you’re reading and collecting/curating as many notes as I tend to. I’d rather be able to highlight, type some thoughts and have it appear in my notebook. This would prevent the flow of my reading, thinking, and short annotations from being subverted by the note collection process.
Different modalities for content consumption and note taking
Based on my general experience there are only a handful of different spaces where I’m typically making notes.
Reading online
A large portion of my reading these days is done in online settings. From newspapers, magazines, journal articles and more, I’m usually reading them online and taking notes from them there.
.pdf texts
Some texts I want to read (often books and journal articles) only live in .pdf form. While reading them in an app-specific setting has previously been my preference, I’ve taken to reading them from within browsers. I’ll explain why in just a moment, but it has to do with a tool that treats this method the same as the general online modality. I’ll note that most of the .pdf specific apps have dreadful data export—if any.
Reading e-books (Kindle, e-readers, etc.)
If it’s not online or in .pdf format, I’m usually reading books within a Kindle or other e-reading device. These are usually fairly easy to add highlights, annotations, and notes to. While there are some paid apps that can extract these notes, I don’t find it too difficult to find the raw file and cut and paste the data into my notebook of choice. Once there, going through my notes, reformatting them (if necessary), tagging them and expanding on them is not only relatively straightforward, but it also serves as a simple method for doing a first pass of spaced repetition and review for better long term recall.
Lectures
Naturally taking notes from live lectures, audiobooks, and other spoken events occurs, but more often in these cases, I’m typically able to type them directly into my notebook of preference or I’m using something like my digital Livescribe pen for notes which get converted by OCR and are easy enough to convert in bulk into a digital notebook. I won’t belabor this part further, though if others have quick methods, I’d love to hear them.
Physical books
While I love a physical book 10x more than the next 100 people, I’ve been trying to stay away from them because I find that though they’re easy to highlight, underline, and annotate the margins, it takes too much time and effort (generally useless for memory purposes for me) to transfer these notes into a digital notebook setting. And after all, it’s the time saving piece I’m after here, so my preference is to read in some digital format if at all possible.
A potential solution for most of these modalities
For several years now, I’ve been enamored of the online Hypothes.is annotation tool. It’s open source, allows me reasonable access to my data from the (free) hosted version, and has a simple, beautiful, and fast process for bookmarking, highlighting, and annotating online texts on desktop and mobile. It works exceptionally well for both web pages and when reading .pdf texts within a browser window.
I’ve used it daily to make several thousand annotations on 800+ online web pages and documents. I’m not sure how I managed without it before. It’s the note taking tool I wished I’d always had. It’s a fun and welcome part of my daily life. It does exactly what I want it to and generally stays out of the way otherwise. I love it and recommend it unreservedly. It’s helped me to think more deeply and interact more directly with countless texts.
When reading on desktop or mobile platforms, it’s very simple to tap a browser extension and have all their functionality immediately available. I can quickly highlight a section of a text and their UI pops open to allow me to annotate, tag it, and publish. I feel like it’s even faster than posting something to Twitter. It is fantastically elegant.
The one problem I have with it is that while it’s great for collecting and aggregating my note data into my Hypothes.is account, there’s not much I can do with it once it’s there. It’s missing the notebook functionality some of these other services provide. I wish I could plug all my annotation and highlight content into spaced repetition systems or move it around and modify it within a notebook where it might be more interactive and cross linked for the long term. Sadly I don’t think that any of this sort of functionality is on Hypothes.is’ roadmap any time soon.
There is some great news however! Hypothes.is is open source and has a reasonable API. This portends some exciting things! This means that any of these wiki, zettelkasten, note taking, or spaced repetition services could leverage the UI for collecting data and pipe it into their interfaces for direct use.
As an example, what if I could quickly tell Obsidian to import all my pre-existing and future Hypothes.is data directly into my Obsidian vault for manipulating as notes? (And wouldn’t you know, the small atomic notes I get by highlighting and annotating are just the sort that one would like in a zettelkasten!) What if I could pick and choose specific course-related data from my reading and note taking in Hypothes.is (perhaps by tag or group) for import into Anki to quickly create some flash cards for spaced repetition review? For me, this combination would be my dream application!
These small pieces, loosely joined can provide some awesome opportunities for knowledge workers, students, researchers, and others. The education focused direction that Hypothes.is, many of these note taking platforms, and spaced repetition systems are all facing positions them to make a super-product that we all want and need.
An experiment
So today, as a somewhat limited experiment, I played around with my Hypothes.is atom feed (https://hypothes.is/stream.atom?user=chrisaldrich, because you know you want to subscribe to this) and piped it into IFTTT. Each post creates a new document in a OneDrive file which I can convert to a markdown .md file that can be picked up by my Obsidian client. While I can’t easily get the tags the way I’d like (because they’re not included in the feed) and the formatting is incredibly close, but not quite there, the result is actually quite nice.
Since I can “drop” all my new notes into a particular folder, I can easily process them all at a later date/time if necessary. In fact, I find that the fact that I might want to revisit all my notes to do quick tweaks or adding links or additional thoughts provides the added benefit of a first round of spaced repetition for the notes I took.
Some notes may end up being deleted or reshuffled, but one thing is clear: I’ve never been able to so simply highlight, annotate, and take notes on documents online and get them into my notebook so quickly. And when I want to do something with them, there they are, already sitting in my notebook for manipulation, cross-linking, spaced repetition, and review.
So if the developers of any of these platforms are paying attention, I (and I’m sure others) really can’t wait for plugin integrations using the full power of the Hypothes.is API that allow us to all leverage Hypothes.is’ user interface to make our workflows seamlessly simple.
Syndicated copies:
Doug, it is funny thinking about my Read Write Collect site. In some ways I was inspired by you and your many sites.
I have documented my workflow before, however this focused more on my long form writing. Here then is my attempt to summarise my workflow.
Clearly I collect pieces from around the web, including various newsletters. However, the majority of my content comes from Inoreader through which I have subscribed to my feeds. From there, I either respond or save posts to Pocket to read and respond later.
If I am responding on my phone, I use URL Forwarder to populate the Post Kinds field. On the laptop, I just create a new post in WordPress.
Although I have tinkered with Micropub clients, I have not found one that fits with what I want in a post. For example, I like have titles with emojis, therefore I actually populate the slug. John Johnston has some code to strip this out, but I am yet to tinker with this.
I really like the possibility using IFTTT and webhooks to generate posts from Pocket and Inoreader, which Chris Aldrich has documented here and here. However, that is still an itch.
In regards to writing my actual posts, I use Post Editor Button to add HTML snippets, such as embedding audio and adding in Microformats where required.
I also use a range of sites to capture quotes and evidence. Whether it be Hypothes.is, Diigo and Quotebacks. I know I should be more structured with this, but I am not.
In regards to POSSE, I use a range of methods, including SNAP, Bridgy for Micro.Blog. However, more often than note I manually write responses and add the corresponding link to my list of syndication links.
Hope that helps.
Just musing a bit: I can create an IFTTT recipe to create a webhook to target a Micropub endpoint on my website, but it would be cooler if I could directly add a recipe to target the Micropub endpoint directly. I want IFTTT: the micropub client.
cc: Zapier, Integromat, n8n
Nine: Micropub for collecting data
The Micropub plugin helps me by creating an endpoint on my site for quickly and easily capturing lots of data. IFTTT, Zapier, Integromat, n8n can all help to aggregate this data too.
#HeyPresstoConf20
Here are some more in-depth details about how I use some of these tools and recipes/walk-throughs so you can too: Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub.
Syndicated copies:
IFTTT, when are you going to add the ability to add a “That” target using Micropub? Currently there is either native Microsub support or plugins for a variety of platforms or CMSs like WordPress, Drupal, micro.blog, WithKnown, Craft CMS, Jekyll, Kirby, Hugo, Blot, etc.
Similar to something like webhooks, these endpoints can be used to send a wealth of data from one place to another. Right now I can see a great use case for going from almost any target that’s currently supported to a variety of endpoints that are currently built for websites or blogging use cases.
Leveraging Micropub may also make it easier to target a simpler common “surface” instead of dovetailing with hundreds of individual CMS platforms and their APIs.
I’ve been able to use Micropub with Webhooks to get around the current IFTTT limitations, but there is a lot more you might be able to do with it as a company while making it easier for customers as well.
It took a bit of moving data, extensions, and other details over, but I’ve now made the switch to Firefox as my default browser. Sweeping Chrome into the dustbin.
Trying to use Micropub to PESOS using RSS feeds into IFTTT webhooks. Trying to adapt @chrisaldrich WordPress ex but having trouble reaching Micro.Blog servers. Using url which is listed in my site header: & the Micro.blog app token as the “access token”. Any ideas @manton ?
How awesome would it be if IFTTT supported the W3C recommendation for Micropub? An endpoint like this could immediately be used to publish content to lots of websites with higher data fidelity and potentially better control over display.
I’m using something similar to bootstrap it with Webhooks, but had to jump through some additional hoops that IFTTT could smooth out.
Syndicated copies:
Hypothes.is is a centralized service and open-source project for annotation and highlights on the web.
Januari is nog niet voorbij maar dit decennium begint al lekker pittig zeg, poehéé! (shoutout naar Tommie!) 🐻 Van onthullingen rondom gezichtsherkenningsoftware tot gehackte telefoons van internet-miljardairs. Maar goed dat het volgende week dinsdag de Europese Dag van de Privacy is. De Privacy Awards worden uitgereikt maar verder kan ik er weinig spectaculairs over vinden. Is er publieke belangstelling voor?
De afgelopen week was ik veel bezig met mijn werk en het zijproject ThanksForSubscribing (Maak je inbox blij!) waardoor mijn dagelijkse intake van Indieweb en Open web nieuws wat achter bleef. Maar niet getreurd, ik heb weer mooie links voor je!
Tegelijk ben ik wel benieuwd, waar zou jíj meer over willen lezen? Wat trekt je naar mijn nieuwsbrief om hem te openen en waar klik je graag op door? Klik reply en laat het me weten!
On with the show! ⚡
Bedek je gezicht terwijl je dit leest! 👇
[tweet https://twitter.com/kashhill/status/1218510902556811264%5D
Clearview(💶 🔐) is ineens de Cambridge Analytica van dit jaar. De onthullingen van New York Times over de gezichtsherkenning software van dit nog onbekende bedrijf kwamen wel even binnen. Minority Report is bijna binnen handbereik. Het zal misschien niet via Clearview zijn maar de geest is nu wel uit de fles. Het web wordt continu geschraapt voor beeldmateriaal en in databases gestopt om later te matchen met politiebeelden, foto’s van activisten, journalisten, of een willekeurige minderheid die niet bevalt bij een overheid. Buckle up voor meer van deze onthullingen.
Meer over het open web 🔗
Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub — boffosocko.com
🔗 In deze titel staan al boelveel moeilijke woorden maar geloof me, je kunt het. If This Then That is een superhandige dienst om allerlei apps aan elkaar te knopen en Chris laat je zien hoe je dit voor je eigen site kunt gebruiken. Het vereist een beetje zweet, spuug en doorzettingsvermogen, maar deze digitale ductape is geweldig om mee te werken! Kom je er niet uit? Ik help je wel verder.
IndieWebGuides — indiewebguides.org
🛠️ Meer knutselvreugde op het web! Met deze IndieWebGuides kun je zelf aan de slag om meer eigenaarschap te krijgen over je domein en data.
Could this plan make Facebook obsolete? | WIRED UK — http://www.wired.co.uk
🗣️ Je digitale identiteit wordt door allerlei sociale silo’s opgesplitst, beoordeeld, geindexeerd en verkocht. Identiteits-activist Kaliya Young heeft een plan om dat te veranderen en om technologie weer gelijkwaardig voor iedereen te maken!
Badaboom badabing, dat was het weer voor deze week! Je kunt altijd eerdere edities teruglezen in het archief en tip me gerust als je iets interessants tegenkomt voor deze nieuwsbrief. Dat mag via email, Twitter, webmention of een leuke kaart in de post. Of gewoon als reply op deze mail.
Blog on!
<!–
–>
I decided to give this a go over lunch. IFTTT is getting a 500 error on the micropub endpoint. I’ve tested the endpoint with quill and micropub.rocks – both worked fine. Did I miss something obvious?
I decided to give this a go over lunch. IFTTT is getting a 500 error on the micropub endpoint. I’ve tested the endpoint with quill and micropub.rocks – both worked fine. Did I miss something obvious?
If the endpoint is working fine, it’s most likely an issue with the sending code. Do your error logs show anything?
Double check for typography. If it’s still not working, make the most minimal example for sending data and see if that works, then add additional pieces from there.
This Article was mentioned on lohn.in
A Capital User Interface Idea
A few weeks ago I saw Ben Stokes’ post about PaperWebsite.com and my immediate reaction was, “I have to be able to do that!” I’ve long enjoyed writing by hand over typing as the tactile feel of of pen or pencil and paper is such an enjoyable one. I particularly enjoy using a nice fountain pen on high quality paper.
Obviously there was a route to doing a workflow like this as Ben had shown. I just needed to figure out a method with a low enough barrier that I could personally implement for doing this with my own WordPress website.
A Quick Solution
Not being a serious coder, I immediately began looking for ways I could leverage some of the IndieWeb building blocks my site supports. Micropub seemed like a no-brainer for the posting portion since I’ve got an endpoint using the Micropub WordPress plugin. Certainly not wanting to manually re-type everything once I was finished writing, I needed a way of converting my handwriting to text and then automating a way to plug that into my micropub client.
A short burst of searching revealed that Google Docs could do Optical Character Recognition (OCR) on photos. I pulled out my IFTTT app and found a recipe for taking a photo and saving it to Google Drive. Then I set up another recipe to watch a particular folder in Google Drive and take whatever text appears in new documents and send it to my website using a webhook that uses my Micropub endpoint. The whole thing only took a half hour from idea to a working prototype. In the end it took a tap to open IFTTT on my phone and another tap to take the photo. Then I had to manually open the document to trigger the OCR. Finally, I had to manually open and edit the post before posting.
I had set the micropub client to post as a draft as a default just in case the OCR wasn’t perfect. This was fortunate as the Google photo OCR was so solid that the letters “Dia” of the microscopic text from the word “Diamond” partially visible on my pen cap that was in the photo got pulled into the post.
In the few times I’ve used this workflow so far, I’ve mostly done straight text and syndicated posts to Twitter, Mastodon, and Micro.blog. Perhaps in the future I might set things up to add HTML links, but they’re fairly easy to add at the editing stage.
Since I started my experimentation, a few others in the IndieWeb community have noticed the paperwebsite.com site. Greg McVerry popped up and linked to it as well. He mentioned that he had a digital notebook with OCR capability. This reminded me that I’ve got both a Livescribe Echo pen and a Rocketbook notebook with a Pilot Frixion pen that has an app for uploading digitized images of notebook pages. I hadn’t done OER with Livescribe in ages, so I pulled out the Rocketbook, which is cleverly erasable and thus reusable not to mention being fairly inexpensive. A bit of quick set up allowed me to take a photo of a page which automatically uploads to Google Drive and does its own OCR process. This already dovetails with my prior process, so the whole thing is much smoother. As a result, I’m composing this post in my Rocketbook notebook and will automatically upload and post it to my site as a draft. I’ll probably add some links, a photo or two, and then publish it in a bit.
Rocketbook Interface
The Rocketbook notebook has some solid pages with an odd shiny texture and feel, presumably part of the technology that makes it easy to wipe them clean for reuse. The bottom of each page has seven different faint icon images which are meant to allow the app to determine where to send the digital copy of the notes. One can send them via email or to a variety of storage or sharing services. I could imagine having different recipes set up to allow one to publish their notes to different websites based on the icon X-ed out. Given the micropub possibilities, one could also use the icons as a means of differentiating post kinds (for example, indicating that a particular post is a note, an article, or a bookmark). Another alternate idea would be to use the icons as a means of selecting which services to syndicate your content to (for example, the diamond could mean syndicate this post to Micro.blog, the bell could mean Mastodon, and the clover syndicates the post to Twitter).
The overall process is quite elegant and pleasant. The OCR for Rocketbook is reasonably good aside from a few spelling errors which are easy enough to click and fix. I’ll admit that I far prefer using a fountain pen on some Tomoe River paper to using the Rocketbook paper and the Frixion pen, but really, who wouldn’t?
Handwritten notes for your digital zettelkasten or personal wiki
Since I’ve already got most of the infrastructure, I’ve gone the extra mile and set things up so that I can take notes on index cards zettelkasten-style and use a similar set up to post them to my Obsidian vault using similar IFTTT recipes.
Try it yourself
For those who want to set this up themselves, I’ve documented the IFTTT/micropub portion before. I’ll post the specific code I’m using below for these who may want it. The nice part is that as long as you have a micropub server for your website platform (there are many CMSs that have native or plugin support) the WordPress portion isn’t a deal breaker for others.
I’m sure, now that there are multiple proofs of concept, some enterprising developer will build a custom micropub client to do all of this work automatically or with a few options built into a clever interface.
I could see pen and paper manufacturers (Moleskin, Leuchtturm, Rocketbook, etc.) creating apps for doing this too. I’d love to see and hear about others trying this out for themselves. Hopefully it can be done with almost no code or some easy cut and paste from my example. Ask if you need help, and I’ll see what I can do to help.
IFTTT Webhook settings
This following will be roughly standard for WordPress endpoints using the plugin, but they can obviously be modified for your platform of choice.
URL:
https://example.com/wp-json/micropub/1.0/endpointMethod:
POSTContent type:
application/x-www-form-urlencodedBody:
access_token=PasswordHere&content=<<<{{Body}}>>>&h=entry&category[]=Social%20Stream&post-status=published&visibility=privateHistorical examples
While doing some of this I did come across some older examples of handwriting to websites. Aside from handwriting typography which I think is usually ugly, I saw some interesting examples from Jeff Bridges[1] [2], gRegor Morrill, and scrolled through some great examples of handwritten and typed Tweets by Alton Brown. In his case, he was simply taking photos of his writing, but it worked! I’ll admit he had some fun and was definitely creative about it. Hopefully Twitter always exists to save the copies for him.
Conclusion
In short, I’ve now got another great way to post to my website. I love the great old school tactile user interface of pen and paper. Now I’m glad to have a reason to be able to do more of it in an ever-digitized culture.
Until I start working on cuneiform solutions…
Write On! 🖋
Editor’s note: This post was originally handwritten on Dec 16, 2021 at 20:15.
Syndicated copies:
A Capital User Interface Idea
A few weeks ago I saw Ben Stokes’ post about PaperWebsite.com and my immediate reaction was, “I have to be able to do that!” I’ve long enjoyed writing by hand over typing as the tactile feel of of pen or pencil and paper is such an enjoyable one. I particularly enjoy using a nice fountain pen on high quality paper.
Obviously there was a route to doing a workflow like this as Ben had shown. I just needed to figure out a method with a low enough barrier that I could personally implement for doing this with my own WordPress website.
A Quick Solution
Not being a serious coder, I immediately began looking for ways I could leverage some of the IndieWeb building blocks my site supports. Micropub seemed like a no-brainer for the posting portion since I’ve got an endpoint using the Micropub WordPress plugin. Certainly not wanting to manually re-type everything once I was finished writing, I needed a way of converting my handwriting to text and then automating a way to plug that into my micropub client.
A short burst of searching revealed that Google Docs could do Optical Character Recognition (OCR) on photos. I pulled out my IFTTT app and found a recipe for taking a photo and saving it to Google Drive. Then I set up another recipe to watch a particular folder in Google Drive and take whatever text appears in new documents and send it to my website using a webhook that uses my Micropub endpoint. The whole thing only took a half hour from idea to a working prototype. In the end it took a tap to open IFTTT on my phone and another tap to take the photo. Then I had to manually open the document to trigger the OCR. Finally, I had to manually open and edit the post before posting.
I had set the micropub client to post as a draft as a default just in case the OCR wasn’t perfect. This was fortunate as the Google photo OCR was so solid that the letters “Dia” of the microscopic text from the word “Diamond” partially visible on my pen cap that was in the photo got pulled into the post.
In the few times I’ve used this workflow so far, I’ve mostly done straight text and syndicated posts to Twitter, Mastodon, and Micro.blog. Perhaps in the future I might set things up to add HTML links, but they’re fairly easy to add at the editing stage.
Since I started my experimentation, a few others in the IndieWeb community have noticed the paperwebsite.com site. Greg McVerry popped up and linked to it as well. He mentioned that he had a digital notebook with OCR capability. This reminded me that I’ve got both a Livescribe Echo pen and a Rocketbook notebook with a Pilot Frixion pen that has an app for uploading digitized images of notebook pages. I hadn’t done OER with Livescribe in ages, so I pulled out the Rocketbook, which is cleverly erasable and thus reusable not to mention being fairly inexpensive. A bit of quick set up allowed me to take a photo of a page which automatically uploads to Google Drive and does its own OCR process. This already dovetails with my prior process, so the whole thing is much smoother. As a result, I’m composing this post in my Rocketbook notebook and will automatically upload and post it to my site as a draft. I’ll probably add some links, a photo or two, and then publish it in a bit.
Rocketbook Interface
The Rocketbook notebook has some solid pages with an odd shiny texture and feel, presumably part of the technology that makes it easy to wipe them clean for reuse. The bottom of each page has seven different faint icon images which are meant to allow the app to determine where to send the digital copy of the notes. One can send them via email or to a variety of storage or sharing services. I could imagine having different recipes set up to allow one to publish their notes to different websites based on the icon X-ed out. Given the micropub possibilities, one could also use the icons as a means of differentiating post kinds (for example, indicating that a particular post is a note, an article, or a bookmark). Another alternate idea would be to use the icons as a means of selecting which services to syndicate your content to (for example, the diamond could mean syndicate this post to Micro.blog, the bell could mean Mastodon, and the clover syndicates the post to Twitter).
The overall process is quite elegant and pleasant. The OCR for Rocketbook is reasonably good aside from a few spelling errors which are easy enough to click and fix. I’ll admit that I far prefer using a fountain pen on some Tomoe River paper to using the Rocketbook paper and the Frixion pen, but really, who wouldn’t?
Handwritten notes for your digital zettelkasten or personal wiki
Since I’ve already got most of the infrastructure, I’ve gone the extra mile and set things up so that I can take notes on index cards zettelkasten-style and use a similar set up to post them to my Obsidian vault using similar IFTTT recipes.
Try it yourself
For those who want to set this up themselves, I’ve documented the IFTTT/micropub portion before. I’ll post the specific code I’m using below for these who may want it. The nice part is that as long as you have a micropub server for your website platform (there are many CMSs that have native or plugin support) the WordPress portion isn’t a deal breaker for others.
I’m sure, now that there are multiple proofs of concept, some enterprising developer will build a custom micropub client to do all of this work automatically or with a few options built into a clever interface.
I could see pen and paper manufacturers (Moleskin, Leuchtturm, Rocketbook, etc.) creating apps for doing this too. I’d love to see and hear about others trying this out for themselves. Hopefully it can be done with almost no code or some easy cut and paste from my example. Ask if you need help, and I’ll see what I can do to help.
IFTTT Webhook settings
This following will be roughly standard for WordPress endpoints using the plugin, but they can obviously be modified for your platform of choice.
URL:
https://example.com/wp-json/micropub/1.0/endpointMethod:
POSTContent type:
application/x-www-form-urlencodedBody:
access_token=PasswordHere&content=<<<{{Body}}>>>&h=entry&category[]=Social%20Stream&post-status=published&visibility=privateHistorical examples
While doing some of this I did come across some older examples of handwriting to websites. Aside from handwriting typography which I think is usually ugly, I saw some interesting examples from Jeff Bridges[1] [2], gRegor Morrill, and scrolled through some great examples of handwritten and typed Tweets by Alton Brown. In his case, he was simply taking photos of his writing, but it worked! I’ll admit he had some fun and was definitely creative about it. Hopefully Twitter always exists to save the copies for him.
Conclusion
In short, I’ve now got another great way to post to my website. I love the great old school tactile user interface of pen and paper. Now I’m glad to have a reason to be able to do more of it in an ever-digitized culture.
Until I start working on cuneiform solutions…
Write On! 🖋
Editor’s note: This post was originally handwritten on Dec 16, 2021 at 20:15.
Syndicated copies:
This Article was mentioned on lohn.in
All of those solutions interface with WordPress. I ended up doing a static site with Hyde:
funkthat.com/gitea/jmg/blog
So not sure how useful those would be. I have a feeling I need to make my own templates for doing this.
Because the pieces are all building blocks that interoperate, the broad outline should also work for SSGs. I see a few people mention implementations of micropub at indieweb.org/static_site_ge…. IndieWeb chat can be helpful here too.
(boffosocko.com/2022/06/21/558…)
@tmichellemoore @jasontucker My Tweets are almost always syndicated via POSSE from my site to Twitter, but for those prior to circa 2015, I do have an archive if someone comes up with a simple tool to do that sort of direct import. I’d probably want to pick and choose which ones were public however. I haven’t used that particular Twitter importer, but have used Sternberg’s Instagram tool as Instagram doesn’t have an official API for crossposting.
If you really want native ActivityPub mirroring of your site on Mastodon, you might try @pfefferle’s ActivityPub plugin (along with his NodeInfo and Webfinger plugins). I still need to tinker with my own set up for better formatting, but you could follow my WordPress site @chrisaldrich
A while back I did set up a system that uses IFTTT to target my micropub endpoint for syndicating some content from silos that don’t have good/easy APIs or methods into my website. Generally I do this as private posts so I have the data and selectively post it as necessary. These days I primarily do this with my Hypothes.is annotations to my site, though only a tiny fraction of the 12,000+ is publicly available: https://boffosocko.com/kind/annotation/. Currently only about 1/3 of my 45,000+ posts are publicly viewable on my site.
Eventually someone might build Micropub as a Service so you can sign up and give it social silo accounts to have the service PESOS copies of your content to your website.
@dv thank you, will look into it. love your site btw! 🙂
Photo by Patrick Perkins on Unsplash
Many folks who have been hanging around on the IndieWeb scene may already be familiar with hypothes.is, a web annotation tool that allows you to highlight and make notes on web pages and PDFs directly, in-browser. Historically I’ve had accidental interactions with it when I’d loaded up blogs (like Tom Zylstra’s for example) and I’ve also seen Chris Aldrich wax lyrical about the service a lot (he is a hypothes.is power user, and he’s made so many annotations there that they recently sent him a little care package in celebration).
I about a week ago I decided to give it a try and here are some of my early thoughts about the service. So far I have made 35 annotations – not as many as Chris A above but enough to get a feel for the tool. Below are some thoughts and early experiences.
Why I Like Hypothes.is
The thing that’s really appealing about the service is that you can just install the Chrome Plugin or Unofficial Firefox Plugin and just start annotating whatever you’re looking at. Using it is as satisfying as taking a paper printout of an academic paper and going to town with my fountain pen and the results are a lot more legible and leaves a public learning exhaust for others to examine. I find using the hypothes.is annotator is lower friction than using the Joplin or Evernote web clippers to make copies of documents and skulking off to add markdown highlights and comments in your own private note repo and I prefer to write in public anyway, it helps me hold myself accountable. Plus the tool works on PDFs without the need for a separate PDF reader.
The other cool thing about hypothes.is is the social aspect: if you make public comments then other people who land on the same page as you and open the annotation tool can see what you wrote and even respond to you. This can be a really cool way to interact and learn together (although I can totally see how people might end up getting into flame wars too – with great annotation power comes great responsibility guys).
Owning Your Annotations
Hypothes.is is run as a non-profit and public annotations are licensed under creative commons zero (public domain) meaning that there’s no need to worry about data ownership (unless you really want to retain copyright over your comments for some reason). However, I was initially concerned that Hypothes.is, like other “tech silos” might just disappear or go offline and take my data with it.
After reading around a bit it seems like I wasn’t the only one that had this concern.
As Tom Zylstra says:
Some people have annotations sent to their private knowledge store in tools like obsidian. Whilst another common pattern seems to be to use tools like IFTTT to automatically syndicate annotations back to your personal website. I’ve adopted the latter approach. I’ve built a tiny tool called hypopub which runs every 15 minutes, polling my h rss feed and posting any new annotations it finds to my micropub endpoint. You can find a list of all of my public annotations on my blog here. I’ve removed the annotation post type from my ‘firehose’ RSS feed because I don’t want to annoy people if I make a bunch of notes. You can still subscribe to my annotations feed separately if you wish.
What can you annotate?
It seems like you can annotate pretty much anything. So far I’ve successfully annotated PDFs – both locally on my laptop and hosted and a variety of web pages.
Some websites do not load in hypothes.is’ via proxy but usually you can still use the browser plugin or bookmarklet to get things working.
You can annotate pages in webarchive and I have found that you can also annotate pages in your own archivebox. The only problem with doing the latter is that it can be very lonely. Hypthes.is is a social annotation tool so if you only ever annotate articles in your own web archive you’re unlikely to find anyone to talk to. Having said that, if you download and annotate a publically available PDF I am told that the system will attempt to fingerprint it so that others who have downloaded the same PDF can see your public comments. This hasn’t happened to me yet though – maybe because of the niche AI/NLP papers I read.
What Next?
I’m enjoying the service so far. I’m planning to continue to use it to generate literature notes that will form the seeds for pages in my digital garden. I’ll also be looking for ways to combine it with annotations I’ve made in other systems e.g. my kindle clippings and wallabag reader annotations.
I’m also really interested in how others are using the service. If you have a cool hypothes.is workflow please do get in touch (or even annotate this page!).
<a href="https://brid.gy/publish/mastodon"></a><a href="https://brid.gy/publish/twitter"></a>
@wynlim @dv Another option is to make your WordPress site federate with other ActivityPub enabled tools like Mastodon. Try out the ActivityPub, NodeInfo(2), and Webfinger plugins for details. You won’t get the reader experience, but people can subscribe to your content and replies on platforms like Mastodon will show up as comments on your site.
@chrisaldrich @dv thank you! will definitely investigate it further. 🙂
@chrisaldrich I’m not sure that it gives me any more assurance. But short of running my own instance, it’s some small piece of mind that I’d have full control over my content with redundancy. I’ve only been on Mastodon a few weeks but already felt the heavy hand of an instance owner’s moderation who completely misunderstood a conversation I was having and deleted posts willy-nilly.
@chrisaldrich oh, and discovery on micro.blog is not so great.
@chrisaldrich appreciate the tips and the link.
@inthedeltawaves Discovery in which direction and of what? Discovery of your single user Mastodon instance that micro.blog effectuates?
@chrisaldrich discovery in both directions, really, but mostly I meant there’s a much higher probability of finding content and users on Mastodon that I’d actually be interested in following. There’s a near zero chance of me discovering that on micro.blog but its other strengths fill in the gaps of what Mastodon lacks, which is for me control, simplicity, portability.