I’ve worked on many content management projects in the past, and to be honest, I’d be perfectly happy if I never worked on another one again. For some reason, finding an adequate balance between usability, flexibility, and performance is nearly impossible.
When building content management systems there are two options. You can base your work on an existing system which is just inflexible enough to make your life a living hell on a daily basis, or you can build something from scratch and spend a large amount of time repeatedly reinventing the wheel. Frameworks like Rails and Django make it a lot easier to reinvent the wheel, but you still can’t escape the fact that you’re spending time creating forms that enable users to enter content that will be inserted in a database so that it can be presented on a Web page.
Currently staring down a content management project looming on my horizon and thinking the very same thing.