




Federation in modular ecosystems & keeping it small
I've been rethinking how to limit the impact of AI slop in my projects and decided each app should do one thing only.
This has let me build a tightly coupled permission and documentation system.
Capabilities are documented in plain English and are attached to permissions, so when a plan grants you capabilities, they are listed on the subscribe page.
The app you see isn't the product, it's just a demo and there's no way to pay. I'm keen to showcase the functionality which is a little difficult in screenshots so I'll explain.
Every single plug is its own Go application which connects to a NATS JetStream server. They all communicate in this way and can be on different servers. I can work on one feature without breaking everything.
If that feature breaks, I simply make it again. I keep them really small.
The coolest thing is each new feature I add is exponential: if I add WhatsApp support with plug-wa (WIP), all the other plugs will be able to have WA as an interface. So I make one thing, and can use it in many ways.
I'm really enjoying the ChatGPT integration which lets me access my Obsidian notes synced with Syncthing -- I can make plans and write to Obsidian and then amend them on my phone and computer, then have a separate agent do the work.
It's all possible because of trust boundaries. plug-mcp exposes capabilities as tools, and plug-chatgpt allows ChatGPT to access plug-mcp. Everything is tiny. plug-syncmd just writes markdown to a directory, but together they let me plan and work effectively.
I've also binned off containers and switched to AppArmor, now when agents try to implement unsafe inter-plug communication, it doesn't work. They can't see each others secrets, they are simply invisible.
Keen to hear your thoughts & whether I'm reinventing the wheel because it doesn't seem that new to me