There’s a lot of excitement right now around AI agents, tools, and modular systems. Define tools. Describe them well. Let something else decide when to use them. Sound familiar? It should. Because we’ve been doing this for years | we just called them plugins . The core idea A well-designed system doesn’t hardcode features. Instead, it does one thing at startup: Load modules (plugins) That’s it. No giant Program.cs doing everything. No tightly coupled feature logic. Just a host application that loads capabilities dynamically. Everything is a plugin In this model: Pages → plugins UI components → plugins Business logic → plugins Side effects (logging, API calls, events) → plugins Even things you don’t normally think about, like routing, become plugins. Why this matters When every feature is a plugin: Adding a feature → drop in a file Removing a feature → delete a file Replacing a feature → swap a file No refactoring. No ripple effects. This is true modularity .…