The Content Services product has always been very easy to extend and customize so it can manage content from different types of domains, such as healthcare, finance, government, insurance, and manufacturing. This is supported by so called Extension Points. An extension point is a supported interface that can be used to customize the product.
The extension points are all in-process extension points.
The in-process extension points can be divided further into server side extensions for the Platform, also referred to as Repository, and UI extensions for the web client called Share. To get started see Platform extensions overview and Share extensions overview.
Also, you should get familiar with SDK 3 as it is the recommended way of developing in-process extensions.