I think the proper choice of word depends upon the level of independence achieved by the addition... and whether or not your use of the word "clip on" indicates that addition/removal must be easy.
(One is thrown by the example of a warp drive, since warp drives are never ejected (they are separated with an entire aft portion of the ship, in vevy rare cases of Borg invasion) but generaly only warp cores can be ejected... and in that case, well, they are not to be clipped right back in! )
Module is a great word for this. Modules are independent by design, yet incomplete by definition... they must clip on to each other to form a system that can achieve things. Since the word functions in web design and in building, I would go with this.
However, modules have a specific definition. The right word for what you're building, if it's a web app may have to do with the dependence of the new features on the old code. It may be an extension, incapable of doing anything on its own, but perhaps hackable into something that could fit another browser or system. It could be a library, designed to play with or extend a set of functions in a programming language. It may be a completely new thing, and everything it extends can be referred to as run by X, "under the hood"
Depends on how far you go and what you're building. If you want to clarify more, I'd be happy to get into that. I think module or extension best utilize the concrete language related to structures in a way that can be applied to computing to illustrate the scope of the build being undertaken.