IndieConnector 2

After almost half a year of development, it's finally here: IndieConnector 2 has arrived with numerous new features.

The main goal of this version was to make IndieConnector independent from external services. Therefore, I wanted to start by detaching IndieConnector from webmention.io in the first step.

I quickly fell down the rabbit hole into Webmentions, as one might expect. Unlike what I initially thought, receiving Webmentions is not just about listening for a request and processing it.

Microformats

The journey into the world of Webmentions is more like a journey into the world of microformats. IndieConnector could always display which type of Webmention was being sent - whether it's a Like, Bookmark or Response. The majority of this work has been handled by webmention.io so far.

To distinguish between different types of Webmentions and identify who the author is, you need to parse microformats from the page. Not all pages use these formats equally, which involves some effort even with helpful libraries.

Consequently, IndieConnector 2 comes with a few Kirby tags that should make it easier for you to define what type of Webmention to send - e.g., sending a Like.

Receiving without webmention.io

webmention.io is an excellent service on which the IndieConnector plugin has relied on since the beginning. In my opinion, however, it's essential to become as independent from external services as possible, and it always was the goal to use native Webmentions - i.e., receiving them without webmention.io.

This is the biggest update in the plugin.

IndieConnector now automatically receives Webmentions; you don't need to configure anything for this to work!

That has been the biggest hurdle so far. The configuration of IndieConnector and webmention.io, setting up a hook, and receiving an initial Webmention were always required. All that is no longer necessary. Simply install the new version of the plugin, and both sending and receiving will function without further configuration.

Of course, IndieConnector still supports webmention.io; if you want to continue using the service, you can do so.

Mastodon

It's still possible to automatically post to Mastodon. When publishing a page, a post is also created on Mastodon.

Newly added are filter options. Just like with Webmentions, you can now specify which templates should create posts or not be allowed to. Additionally, for each page in the panel, you can deactivate creating posts via toggle.

You can still define which field is used as a source for the text postet to Mastodon and now also define a field for an image, which will then be uploaded and posted to Mastodon, too.

Bluesky

As more people start using Bluesky, I've decided to integrate it into IndieConnector. You'll be able to post new content on Bluesky automatically, just like with Mastodon. The configuration for both platforms is identical.

Queues

For websites that receive a lot of webmentions, I've added a queue function to prevent slowdowns. This feature must be activated separately and requires a SQLite database. Incoming webmentions will be stored in the queue initially and then processed one by one.

The processing works best with a cronjob that calls a webhook URL. Sounds more complicated than it actually is and should take only a few minutes to set up.

Statistics

There's also an updated panel view with statistics, which has been completely overhauled. It now provides even more details, such as breaking down incoming webmentions by source (e.g., Mastodon or Bluesky). You'll see better which of your sites sent webmentions to other websites and whether that worked.

Filter options

All new features come with filter options. For example, you can block hosts that spam you or you know won't receive any webmentions.

Etcetera...

In addition to the big new features, there are numerous other changes under the hood. The plugin will retry sending a webmention three times in case of failure before giving up. This way, it won't keep trying to send webmentions during page saves even after multiple failed attempts earlier.

IndieConnector doesn't just post on Mastodon; it also stores the post URL so you can display it on your site and let visitors reply on Mastodon.

BREAKING CHANGES

I tried to stay backward compatible, but the extensive changes forced me to clean up some options that were available in config.php. All old options are still available and will be read; I recommend updating them and test locally before applying any updates.

All database migrations run automatically. Before an update, it's a good idea to create a backup of your database just in case something unexpected happens.

Kirby hooks now use other webmention types. If you're using the hook, you'll need to adjust it accordingly.

Plans

During development, I came up with many new ideas and feature requests; I had to draw the line somewhere eventually or I would never have been able to publish the release.

Planned features:

  • Queues for sending webmentions
  • Queues for creating Mastodon posts
  • Queues for creating Bluesky posts
  • Blocking hosts in the panel view
  • Manual creation of Mastodon and Bluesky posts (without hooks)
  • Independence from brid.gy to collect Mastodon/Bluesky replies

I hope you like that new release, let me know what you think in the comments - or simply send a webmention 😎

Release v2.0.0 · mauricerenck/indieConnector
2.0.0 (2024-08-06) Features native webmentions (#13) (38321f6) BREAKING CHANGES rewrite of receive classes and tests feat: stats enabled option the configuration stats = true has been mov...