Knot System

I was part of a design research project examening independent social publishing on the internet, in the wake of which I started building a prototype, consisting of multiple interchangeable modules. The system provides a private website with a chronological feed, a backend to write new posts and to subscribe to and read feeds of other websites and some modules that handle authentification and background activity. The modules are meant to be used together, but every piece can easily be replaced by another service that uses the microsub, micropub or IndieAuth protocols. If you want to try it out, you can visit our beta test page (german), or read the setup instructions for the installer on GitHub.

All these prototypes are written in PHP, with human readable text files for data storage in a transparent folder structure, so no dependencies (other than PHP 8 and some additional PHP libraries) are required. They should run on any off-the-mill webhosting account. The folder structure of the content folder is inspired by Kirby, which is designed to be readable by humans, so it should be very easy to move the data to another system. There is no opaque database or proprietory format, so you can always get to your data, even if this system stops working. Everything aims to be as simple and fast as possible.

This is currently in beta stage. It is already working, and i'm using it daily, but things may still change.

The Knot System is a collection of smaller modules that can be used together. Every module can be replaced by an alternative, for example if you don't want to use Knot Site as your website, you could use a WordPress or Kirby install with a micropub-plugin as your website, and still use all the other modules that the Knot System provides.

The modules are the following:

Knot Installer

This is a small installer, that bundles all other modules together, so you can install and configure them in one go. Use this, if you want to install everything.

 #

Knot Installer on GitHub

Knot Control

This is used to configure and update all the other modules. You could also update all other modules manually, and use the config.php files to configure them, but this makes it a bit more comfortable.

 #

Knot Control on GitHub

Knot Site

A micropub server and small website system. This can be your own website. All content can be created via textfiles in folders, or by using a micropub client (like Knot Home).

 #

Knot Site on GitHub

Knot Home

A microsub and micropub client. You can connect it to your Knot Site and Knot Daemon modules It allows you to make new posts to your micropub server (Knot Site) and read all the posts from feeds you follow (Knot Daemon).

 #  #

Knot Home on GitHub

Knot Auth

A IndieAuth server, that handles authentication and token verification; it is used when you log in into Knot Home or Knot Control and verifies your authentication, when you post to Knot Site or retrieve posts from Knot Daemon.

 #

Knot Auth on GitHub

Knot Daemon

A microsub server that is used for following and collecting feeds. It runs in the background and collects new posts from all the feeds you follow automatically. It is not meant to be used for reading any posts, use a microsub client (like Knot Home) for that.

Knot Daemon on GitHub

Beta Test

If you want to try this out, you can visit our beta test page (german) or read the setup instructions on GitHub.