Is it feasible to build a general purpose application framework, into which you could plug modules for forums, stores, galleries, blogs, etc.? There's a lot of overlap between various applications — they often have very similar code for registration, login, and logoff of users; permissions for handling guests versus logged-in users of various levels (plus administrative and moderator user levels) and what they can see and what they can write to; low level database access routines; user interface design and templating; and probably other stuff. The framework would handle all this common stuff, providing a consistent look and feel across all modules, and a consistent API for the modules.
One thing that must be taken into account in the design of any application, including this one, is that most people putting up a website are neither Computer Science majors, nor looking for a new and all-consuming hobby. They are looking for a tool or appliance to do what they want without a lot of blood and sweat and tears. At the other extreme are people who love coding and want to be able to modify and customize this thing to their hearts content. Can both groups be satisfied? Most site owners would be delighted to have something they can drag and drop pieces into, and use a dashboard to give them a helping hand in tuning the thing. If these people want a toaster for their kitchen, they'll go to a store and buy one. They don't want to play engineer and design a toaster themselves, source all the components, and assemble it themselves. Other people relish the challenge.
If an application framework (plus the applications plugged into it) requires PHP coding skills to make modifications (including successfully installing third-party modules), that will drive away a substantial part of the market. However, relying solely on hooks and plug-ins may be too limiting for other users. So what's the happy medium? Can you have hooks and plug-ins that won't be broken if you (carefully) manually edit the code? With so many extra layers and interfaces to go through, can you get reasonable performance?
People with experience in applications are welcome to comment here. I'd especially like to hear about experiences with Wordpress, which seems to have an almost infinite library of plug-ins — do they work well for all levels of coders/maintainers? People with experience in Drupal, Joomla, and other Content Management Systems are also welcome. I have long had a concern that most CMSs put too much in the database that should really be in code files, imposing a heavy server load and/or limiting what can be done. I've never liked the idea of having to edit some HTML (or just text) in the CMS's editor and then have it disappear into the database, to re-emerge somewhere else later, on some page. I would personally prefer to write PHP code to put out that page, calling on common routines to make sure it all fits together nicely.
Your thoughts?