When starting out, some digital agencies go about creating their own content management systems in an attempt to offer an in-house solution to their potential clientele. Having fewer clients at the start, there is more free time to work on internal projects such as this.
With a custom built framework, a system can be created that is finely tuned around completing tasks that their average clients require and doing it exactly how they want it to work. The administration areas and front end CMS can be created to fit a UI that would appeal most the their potential clients, as can the functionality.
Whilst this can increase the bill sent out to a client, it can sometimes fail to warrant it when compared to pre-existing open source systems that have been worked and reworked by a sea of community developers. The key word taken from that previous sentence is “community”, something that existing systems have a wealth of. Should a vague problem arise, Google and forums will no doubt have a variety of answers from a range of contributors.
The use of an internal framework built around a sole purpose is that it is generally not extendable in ways that WordPress hooks / plugins, drupal modules or magento extensions offer to their respective systems, though with additional thought and work this can be accomplished to a more basic variation. These prebuilt solutions that have been created by other experienced developers and thoroughly tried and tested by the community can truly save hours or even days of development time and are often offered for free on an commercially open license.
By using open source solutions the agency may not become specialised experts in their one system but they can take each job as it comes and choose the best language, framework and structure for the client. For clients requiring an e-commerce solution PHP and Magento can be used, whereas if an agency were approached by an expansive, user-based startup then a scalable Ruby-on-Rails could quickly be set up. Working with a range of open source solutions they can in time become experts in the frameworks in their own respect that can allow them to build their own custom modules and plugins, in a sense using it as they would their own in-house built CMS.
It is my opinion that if you are providing a solution for a market that is focused around a small niche with limited needs then it can be worth building an agency-bespoke in-house system to offer to clients. Though should you work with a range of clients then you need a range of solutions that will compliment them and the requirements they bring to the table.