> For the complete documentation index, see [llms.txt](https://aptitude.gitbook.io/zaubercms/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aptitude.gitbook.io/zaubercms/extending-zaubercms/overview.md).

# Overview

I have tried to make ZauberCMS as extendable as possible. The main functionality is driven from the ExtensionManager. The ExtensionManager allows you to find instances of types and use them all over the site. If you inject the ExtensionManager you can use this for your own projects.

```csharp
// Injecting the ExtensionManager into a Component
[Inject] public ExtensionManager ExtensionManager { get; set; } = default!;
```

And then you would use it like so

```csharp
// Note the true is passed in, to cache this call to speed up next calls
var instances = ExtensionManager.GetInstances<IContentProperty>(true);
```
