I have been contracted to build a simple, stupid (yet somewhat powerful and not lame) hosted CMS.<p>I have to code it with PHP/MySQL (and JavaScript/AJAX as needed).<p>It has to be capable of building small, mainly catalog/brochure sites, sans a lot of bells and whistles. Ease of use is the most important criteria.<p>I am wondering whether to pick up an open source project and mod it or build from scratch.<p>All suggestions welcome.
Please do your client a favour and find a way to use an existing CMS. There are countless options available.<p>Building something custom effectively means you are stating that your requirements somehow happen to be so unique that somehow all the existing solutions are not adequate. Otherwise it can't be justified.<p>And the chances of that statement being true is astronomically low.<p>If you think of it as a spectrum,<p>One one end there's the "shitty 50 line python script I created for my own problem in an hour in an afternoon".<p>On the other extreme end is "new CMS we are building to challenge all the existing ones because we are in the business of making a new CMS and we have raised millions and millions".<p>Everything else in between (where the CMS itself is secondary to a different primary problem being solved) does not justify the creation of the CMS.<p>It's like deciding to first manufacture a cook-top because you want to cook a really tasty dish of scrambled eggs.
Customizing an existing one is better insofar as:<p>1. Its usually faster, since you're just writing a plugin or overlay or whatever on someone else's work.<p>2. Makes it easier for customer to hire other people to maintain it when you've moved on.
I wrote a single file CMS a couple years ago, similarly out of necessity. It might be a place to start. Build off of it as you need to.<p><a href="https://github.com/gelform/GelCMS" rel="nofollow">https://github.com/gelform/GelCMS</a>
The best thing for your client is hiring a designer to customize SquareSpace or something similar. There's absolutely no reason to custom-build something that's been built and open-sourced a thousand times already, but there's also no reason to self-host or use a FOSS CMS, either.