I am running WebGUI on most of my servers, its a perl based CMS system / framework.
I have been extending it a lot to suit my needs by writing my own modules.
Everything in WebGUI is modularized so you can write your own authentication modules,
url handlers, content handlers, wobjects which is stand alone modules for dragging in
to the website.
Its mostly not nessesary to change the core of the system as you will just create your
own module and use that instead of a build in default.
I have had to change a few things in the core, due to a 0-day i found, but apart from that
its pretty much just extending functionality of the existing framework.
The api in WebGUI is very good in my opinion, but as everything it takes some time
to get to know it all, which I have come to do over the years.
The + of webgui is that it got direct access to the apache webserver through mod-perl
and the api facilitates this very well.