How I Set Up My Indieweb WordPress Site – 2018 Edition

This is an update to my 2014 article on how I set up my WordPress site. It was requested I update it.

Standard Plugins

  1. Character Count for Post Content and Excerpt(Link) – Because I need to be aware of the 140 character limit of Twitter, one of the services I send my content to, I need to know the character count of what I’m typing. This adds that to my editing screen. No longer using this plugin and could not find a replacement.
  2. EWWW Image Optimizer(Link) – It reduces file sizes for images to ensure faster loading
  3. Pushover Notifications(Link)or the forked alternative Pushbullet Notifications(Link) for WordPress – This plugin sends notifications of site events to my phone. The Pushover version is actively maintained and allows for extensions.
  4. Simple Local Avatars(Link) – Overrides the default of using the Gravatar service for profile pictures to storing them locally. However, this plugin hasn’t been updated in years. May look for a new one.
  5. WordPress SEO by Yoast(Link) – While I’m not obsessive about Search Engine Optimization, I find this plugin assists in my writing by reminding me about the importance of certain elements. While this is still a popular plugin and good for many people, it’s become a bit too aggressive for me.
  6. The SEO Framework (Link) – Sometimes, I think about getting rid of all SEO plugins. I’m not really obsessed with this. This does add non-Indieweb markup for some sites that require it. It isn’t worth it for me to manually add this right now.
  7. Hum(Link) – This is a simple URL shortener. So for each post, there is an equivalent URL address at di5.us. This allows me to give out easier to enter links to longer post titles.
  8. JSON Feed(Link) – Adds a JSON Feed to a WordPress site. This is an alternative to RSS as a feed. I’ve used it to feed my content to Micro.blog more effectively, as the specification was co-created by Manton Reece, who is the creator of that service. The plugin could stand some enhancement.
  9. Series(Link) – Creates a simple taxonomy called ‘Series’. I added this to my site to allow creating series of articles.
  10. WP Photo Sphere(Link) – For the rare occasions that I post 360 degree images. Rare as in I’ve only posted one.
  11. Social Network Auto Poster(Link) – I keep wanting to get rid of this thing. But I haven’t spent the time to replace it. Thinking of doing that soon.
  12. Simple Location(Link) – You can call this an Indieweb plugin, but it isn’t specifically an Indieweb technology(although it does use Microformats markup). It adds location and weather awareness to a post. So, you can click to add your location and the current weather conditions at that location to a post.
  13. Home Assistant for WordPress(Link) – I use Home Assistant for my Home Automation integration. Since it has an API, I wrote this simple plugin. While at the moment, I hope to add the ability to display information from any sensor and to update a sensor on the Home Assistant side from WordPress, I use it right now as an enhancement to Simple Location. Instead of getting my location from the browser, it gets it from my Home Assistant installation, which tracks my presence.

The Indieweb Stuff

  • WordPress Webmention(Link) – Adds webmention support for WordPress. This allows communications between sites.
  • Semantic Linkbacks(Link) – Adds richer content to WordPress comments received by Webmention. For example, interprets them as reply, repost, like, favorite, mention, etc. This allows different displays and actions to be done with them.
  • Semantic Comments(Link) – One of my own plugins. It changes the display of WordPress comments based on the information from Semantic Linkbacks. It presents the profile pictures in a Facepile for the various types of mentions with the comments separately below. This functionality has now been rolled into Semantic Linkbacks and is even better than it was.
  • Indieweb Taxonomy(Link) – Semantic Linkbacks is all about receiving webmentions for the various semantic types. But this plugin, another one of mine(although I credit several with contributions), adds new terms to WordPress posts for responding to content on another site. So, a post on this site can be a reply to another site, a like, etc. It will automatically send a webmention to the other site, if that site supports it, of course. Replaced by Post Kinds
  • Post Kinds (Link) – This replaced Indieweb Taxonomy. It is a replacement for the WordPress Post Formats which uses Indieweb post types. It allows you to respond to content on other sites, generates previews of those sites for context, allows you to post activity type posts(like watching, listening, reading, etc).
  • Syndication Links(Link) – Another project, which adds fields to a post for the corresponding versions on other networks. It also adds links to same to the post.
  • H-Card Tools – Still under development and not yet available for download, this is just the profile widget marked up appropriately, in the sidebar of the site. Some of this was rolled into the Indieweb plugin
  • Indieweb Plugin(Link) – The Indieweb plugin is not only a plugin installer, but it contains tools for adding rel-me links based on your profile, declaring the default author for your site, and adding a simple h-card widget to show off a primary author.

A Few Choices

  • There is an alternative to my Syndication Links plugin…a plugin called WordPress Syndication (Link).  It automatically adds the links to the post, and extracts the data from a variety of sources that post to other sites. This includes NextScripts Social Network Auto-Poster(Link) or Mailchimp’s Social plugin(Link), and even Bridgy(we’ll get back to Bridgy in a moment).
  • The theme I use is a custom one I built, but the most popular theme for Indieweb sites is Sempress(Link). My theme isn’t quite refined, but if you want it, a copy can be downloaded here. The version in use on my site is just a colored version of the minimal style the theme offers. I am currently using a fork of the WordPress Twenty-Sixteen theme(link) I modified for Microformats and support of the plugins I use.

Bridgy

Bridgy is not a WordPress plugin, or something you need to install(although you can host it yourself). Bridgy now has a WordPress plugin(link) which acts as a UI for registering and posting to Bridgy. Oddly enough, I wrote the plugin, but don’t actively use it. I need to fix my handling of syndication.

Bridgy is a service that you can link your accounts on places like Twitter, Github and Facebook to, and it will pull in comments, likes, etc from those sites and send them to your site to be integrated. This requires the Webmention and Semantic Linkback plugins to understand what is being sent.

To the Future

I enjoy developing this site as a learning tool. I hadn’t done much WordPress development before this and it is very useful to know.

For anyone who comes here considering trying my setup, I’m always available to help. For those who are trying my plugins…they are still being refined, but feedback and contributions(of code) are appreciated.

This site is under development, so it does change regularly. I will often summarize some of the changes with a post, but sometimes not.

How I Set up my WordPress Indieweb Website – 2019 Edition

This is an update to my 2018 article on how I set up my WordPress site.

Standard Plugins

  1. EWWW Image Optimizer(Link) – It reduces file sizes for images to ensure faster loading
  2. Pushover Notifications(Link)or the forked alternative Pushbullet Notifications(Link) for WordPress – This plugin sends notifications of site events to my phone. The Pushover version is actively maintained and allows for extensions.
  3. Simple Local Avatars(Link) – Overrides the default of using the Gravatar service for profile pictures to storing them locally. However, this plugin hasn’t been updated in years. May look for a new one.
  4. Avatar Privacy (Link) – Adds local avatars and custom default avatars, caches items from gravatar, adds opt out of avatars, etc. Should be a part of WordPress Core.
  5. The SEO Framework (Link) – Sometimes, I think about getting rid of all SEO plugins. I’m not really obsessed with this. This does add non-Indieweb markup for some sites that require it. It isn’t worth it for me to manually add this right now.  Last time I commented that I thought about getting rid of all SEO plugins. So I did.
  6. Antispam Bee(Link) – As an alternative to third-party solution Akismet, this plugin does a similar job without a third-party service.
  7. Hum(Link) – This is a simple URL shortener. So for each post, there is an equivalent URL address at di5.us. This allows me to give out easier to enter links to longer post titles.
  8. JSON Feed(Link) – Adds a JSON Feed to a WordPress site. This is an alternative to RSS as a feed. I’ve used it to feed my content to Micro.blog more effectively, as the specification was co-created by Manton Reece, who is the creator of that service. The plugin could stand some enhancement. I now am a contributor.
  9. Series(Link) – Creates a simple taxonomy called ‘Series’. I added this to my site to allow creating series of articles. There are other plugins for this, but this one is extremely simple.
  10. WP Photo Sphere(Link) – For the rare occasions that I post 360 degree images. Rare as in I’ve only posted one. Hasn’t been updated in a year and was throwing errors.
  11. Dimage 360 (Link) – My current solution for displaying 360 degree images.
  12. Social Network Auto Poster(Link) – I keep wanting to get rid of this thing. But I haven’t spent the time to replace it. Thinking of doing that soon.
  13. Simple Location(Link) – You can call this an Indieweb plugin, but it isn’t specifically an Indieweb technology(although it does use Microformats markup). It adds location and weather awareness to a post. So, you can click to add your location and the current weather conditions at that location to a post.
  14. Home Assistant for WordPress(Link) – I use Home Assistant for my Home Automation integration. Since it has an API, I wrote this simple plugin. A year after I wrote this, I have not added the ability to display information from any sensor and to update a sensor on the Home Assistant side from WordPress as planned. I use it right now as an enhancement to Simple Location. Instead of getting my location from the browser, it gets it from my Home Assistant installation, which tracks my presence.
  15. WP Term Images(Link) – Allows you to set an image for any category, term, or tag. It hasn’t been updated in a while, but even though there are a few improvements I’d make, it does the job. My theme displays these images on archive pages, as well as in the RSS feed.  I may consider running a fork of it so I don’t have to add this in all my themes.

The Indieweb Stuff

  • WordPress Webmention(Link) – Adds webmention support for WordPress. This allows communications between sites.
  • Semantic Linkbacks(Link) – Adds richer content to WordPress comments received by Webmention. For example, interprets them as reply, repost, like, favorite, mention, etc. This allows different displays and actions to be done with them.
  • IndieAuth (Link) – Creates an IndieAuth endpoint on your site so you can log into other services with your website credentials.
  • Micropub (Link) – Adds the ability to post to your site using Micropub. Uses the IndieAuth plugin for login.
  • Post Kinds (Link) – A replacement for the WordPress Post Formats which uses Indieweb post types. It allows you to respond to content on other sites, generates previews of those sites for context, allows you to post activity type posts(like watching, listening, reading, etc).
  • Syndication Links(Link) – Another project, which adds fields to a post for the corresponding versions on other networks. It also adds links to same to the post. It also adds a UI for posting to other sites, with support for the Bridgy service built in.
  • Indieweb Plugin(Link) – The Indieweb plugin is not only a plugin installer, but it contains tools for adding rel-me links(urls to your presence on other sites) based on your profile, declaring the default author for your site, and adding a simple h-card widget to show off a primary author.
  • MF2 Feed (Link) – Accepting that it is hard to get a theme that supports Microformats 2 markup, as there are only a few, this tries to add a side file to your site with the data available. I use this as a way of testing it for those who may have no other easy way to be Indieweb capable.
  • Refback (Link) – I quickly created this a few months ago. It is very basic. A refback is when you take referrers to your website(URLs sent when someone visits your site from another site), and process them as responses to your site.

A Few Choices

  • The theme I use is a custom one I built, but the most popular theme for Indieweb sites is Sempress(Link). I am currently using a fork of the WordPress Twenty-Sixteen theme(link) called IW26 that I modified for Microformats and support of the plugins I use. I have an alternative theme, a fork on the popular Independent Publisher theme called Indieweb Publisher(link). I’m thinking of switching themes occasionally to mix things up.

Bridgy

Bridgy now has a WordPress plugin(link) which acts as a UI for registering and posting to Bridgy. Oddly enough, I wrote the plugin, but don’t actively use it. I need to fix my handling of syndication. I deprecated the Bridgy plugin and moved a new version of the functionality into Syndication Links. I am now using it.

Bridgy is a service that you can link your accounts on places like Twitter, Github and Facebook(deprecated due API changes) to, and it will pull in comments, likes, etc from those sites and send them to your site to be integrated. This requires the Webmention and Semantic Linkback plugins to understand what is being sent.

Decided to finally dispose of my MSI Wind U100 netbook. I bought it on March 19, 2009 for $299, and immediately added an extra GB of RAM and an extra battery and installed Linux. I haven’t used it in years, and it is time to retire it.

neverforgetI’ve been watching reruns of Quincy M.E. on local TV and tuned in to an episode from 1982 called Stolen Tears, where Martin Balsam plays a Holocaust survivor fighting a Holocaust denier, played by Norman Lloyd. Somewhat ironically, Norman Lloyd(born Norman Perlmutter) is also Jewish. I was a fan of his work on St. Elsewhere.

It put me in mind of the 1991 TV movie, Never Forget, starring the late Leonard Nimoy as Mel Mermelstein, and directed by the late Joseph Sargent. Sargent, also director of the original Taking of Pelham One Two Three(which starred Martin Balsam), died a year ago tomorrow. So I bought a copy of the movie on Amazon’s video streaming service, which I haven’t seen since the 90s, and watched it.

In the movie, based on the actual story, Mel Mermelstein is a Holocaust survivor who has a small exhibit at his place of business, and goes to schools and other groups to talk about his experiences. He attracts attention from a Holocaust denying organization and feels the need to challenge them, despite  the fact that most Jewish organizations tell him to simply ignore it and not give the hate group any further ammunition. There are people who consider Nimoy’s portrayal of Mermelstein to be one of, if not his best dramatic performances.

After declaring my intention to help iterate on the Ticket extension to IndieAuth, I built an experimental ticket endpoint, which is available on my test site. I was able to test it using Martijn van Der Ven’s test form for requesting a ticket., after some troubleshooting on both sides. Still have some tweaks to make and questions to answer for expansion, but it turned out that adding support for receiving and redeeming a ticket was relatively easy.

Thinking about Ticket Auth

During this month’s Pop-Up event, as part of the overall topic of sensitive data we were discussing the continual challenges in getting a method of having private posts on one’s site. As a community, nothing has gained enough traction for adoption.

Last summer, a conversation on the most promising at the time, AutoAuth, prompted a new contender Ticket Auth. Ticket Auth turns the relationship in the other direction.

Let’s use our favorite two example people, Alice and Bob. Alice has a post on her site which she doesn’t want to be public. For most sites, the default is public. Alice wants to share her post only with Bob.

AutoAuth doesn’t get into the idea of how Bob, or the client Bob is using, decides he wants to get access to Alice’s post. Ticket Auth, by comparison, puts the onus on Alice. Alice, when she decides on her audience, sends a ticket to those she wants to have access. Bob has to have a ticket endpoint…the place he received tickets.

The ticket is a code that is available for a limited time, that can be exchanged for a longer term token to access the information. It is, essentially, an invitation you are free to accept or ignore.

In trying to develop more, this is a good place to start. Once we start sending and receiving tickets, we can iterate on this and figure out the next questions.

  • Can you ask for a ticket and how?
  • How can you give the ticket or the token you redeem to your reader or other client?

But first things first. Let’s build something.

 

 

Working on expiring tokens for the WordPress IndieAuth endpoint. This would be a breaking change, as currently, tokens issued by the endpoint never expire. This is a security concern, if you keep issuing tokens without ever expiring them. With the new system, you can renew a token, or even disable expiry in the admin if you need a long-lived token. There is a way to have the client get new tokens regularly that I could implement, but currently no client supports it.