Planning IndieConnector 3
It may not seem logical at first to announce work on a new major release when a course and a sync plugin are also awaiting completion, but I've given it some thought.
I'm currently making frequent changes to my website, and almost every one of these changes aims to simplify things—for visitors, for me in the panel, and in the code. The planned release of IndieConnector also aims for this.
The overarching goal of IndieConnector will be to simplify things.
IndieConnector started as a plugin for receiving webmentions. Since then, its functionality has grown considerably. I've tried to maintain backward compatibility with all versions, but to keep the plugin maintainable, it's time to make some cuts.
I'd like to use this post to give everyone the opportunity to voice their concerns and express wishes or problems.
Breaking Changes
IndieConnector 3 will include breaking changes. I'll be removing features that I've been carrying around for several versions, but which probably only a few users still use. Removing these old options, functions, and processes is necessary to keep the code maintainable without requiring an excessive time investment.
Removing old options still present in the code to ensure backward compatibility is a first step toward maintainability.
The biggest change will be the removal of the IndieConnector.json file. This file dates back to the first version of the plugin. It's where the plugin keeps track of which URLs have already received webmentions, whether a post has been created for Mastodon, and so on.
This stems from the time when IndieConnector primarily handled webmentions. I wanted to avoid using a database. However, almost all other features now require an SQLite database. Therefore, I want to eliminate this file and all the associated hassles. A planned feature also supports this decision; more on that later.
This is where I expected the most outcry, and I'm interested in your opinion. Are you still using IndieConnector without a database? Would requiring SQLite for the plugin prevent you from using it?
New Features
Several new features are planned for this release, most of which are designed to simplify usability:
- Webmention Rendering
- standard.site
- Post Templates
- Status Field
- Post Hook
- Buffer API
- Nested Replies
Webmention Rendering
The most essential change will be the ability to display webmentions without having to use the Komments plugin.
Many users find it incomprehensible that they have a webmentions plugin installed and then cannot view webmentions without a comments plugin installed. This is a legacy issue.
Originally, IndieConnector only received webmentions, converted them into a uniform format, and then made them available to other plugins via a Kirby hook. The Komments plugin listened to this hook and saved the webmentions as comments.
The goal for version 3 is to permanently store webmentions—hence the requirement for SQLite—and then display them directly. Snippets and page methods will be available. No additional plugin will be needed if this isn't desired.
standard.site
In addition to the existing option of posting about Bluesky, standard.site is currently making the rounds. I believe IndieConnector is the perfect place for a Kirby adaptation. This is the first step towards delving deeper into the AT universe.
Post Templates
Currently, it's possible to define text for each page, which is then published on Mastodon or Bluesky. This works well if, for example, you already have an introductory text for a blog post. If there's no text, the page title serves as a substitute.
With the introduction of post templates, it will be possible to configure text and, if necessary, use placeholders within it. For example, a template could read: "New blog post online: { title }". This text will then be posted on Mastodon, for example, and the placeholders will be replaced. Users won't have to write text every time if they don't want to.
Status Field
Will a Mastodon post actually be created for this page when I publish it? Who hasn't asked themselves this question? Those who have configured template filters, in particular, could fall into this trap. The status field should solve this.
However, I'm not yet sure whether it will be a dedicated field or the existing share dialog.
The goal is to clearly show the user what will happen when a page is published. Will a post be created on Mastodon or Bluesky? Will webmentions be sent? Has a post already been created? The dialog box already displays this information in some places, but I want to make it even clearer.
Post Hook
To enable the integration of additional services, there should be a hook as suggested here that is triggered as soon as the plugin would create a post. This hook receives relevant data, such as the URL, text, and tags.
Users can use this hook to perform their own actions with this data, for example, to send data to services that are not yet directly supported by the plugin.
Buffer API
I spent a long time considering whether and how to integrate additional services, and I initially decided to support Buffer next. This has the advantage of allowing access to platforms that IndieConnector will likely never directly support: Instagram or LinkedIn.
The API is manageable and offers users considerable flexibility. Perhaps a first step towards integrating other services like Zapier, n8n, or IFTTT.
Nested Replies
While IndieConnector collects replies from Mastodon and Bluesky, it cannot relate them to each other. For some use cases, this would be a welcome feature.
When someone replies to a post on Mastodon, the plugin collects the replies, but currently, it remains a flat list. I want to change this as much as possible. The plugin should also allow users to track which Mastodon post refers to which other post. This would allow them to be displayed in a nested format, for example.
Conclusion
These changes vary in scope. They will definitely take time. I also want to continue substantiating everything with tests, and that takes time.
Therefore, my focus will be on this version going forward, and IndieConnector 2 will only receive fixes for the time being. So, feature freeze for version 2.
I would like to explicitly request your feedback once again! How do you use the plugin? Why don't you use it? What's missing? Where are the problems?
You can either leave a comment here, send me an email, or use the contact options on my [[/about|About page]]. Thank you!
If you want to stay up to date, you can, of course, read my blog and subscribe via RSS, or you can sign up for my plugin newsletter. I will be posting updates about new developments here irregularly: