Custom development vs. open source

I do have to say i’m a extremely biased with the different programming structures out there. (If its not coded by me, why should i look at it?)

I forced my self to learn wordpress only because it was a $6k project; i can custom code that baby inside and out; however its a freakn hack job.

Interesting… It seems that a major point has become lost in translation and it could be that not everyone is aware of what can be achieved with today’s CMS frameworks…

Today’s popular CMS’s (Drupal, Joomla, WP, EE, etc…) are built to aid and enable custom development. The CMS is the foundation which provides the basics of content management, PDF/CSV generation, emailing, contact forms, members/roles, etc… You, the developer can write as much or little code as you like for your custom app.

I agree; maybe we did lose some focus as to why we have the open-source community; however if that’s the case we should be coding in a framework all programmers are familiar with, MVC (Zend,Igniter, CakePHP) atleast we’ll know how its structured and the libraries…

When i work on Drupal to Joomla to WordPress its one chaotic mess after another.

I’ll have to say Magento is probably the smartest Open-Source out there because they use MVC (Zend Framework) when i look at the code atleast i have some idea of what is going on.

Clients… one thing i learned about them is they go with what other people or business are doing they don’t know what the hell they’re asking for but the ABC company that is bigger than them is using Joomla so they want it too. In the end they don’t want to use it nor care about it; here at my job we handle all the edit to the websites, basic text changes to adding users and removing them stuff the client can do easily.

I saw the same discussion over at devnetworks, and there are many interesting comments here.

My company deals mainly with custom development. We build web services that are not CMS oriented. For that purpose, we mainly use the Zend Framework and an assortment of modules we accumulated over the years, such as a basic CMS (not a blogging system though), administration modules for users and other project-specific entities, some client-side plugins and ZF view helpers.

Lately, we’ve been thinking that there might a middle road. Custom development could use a boost by having a library of pluggable components, similar to what the big CMS systems have, that can save time and cost for specific recurring or unique features. This would allow developers to concentrate on the unique domain logic of their project, instead of reinventing the wheel for features that are very common.

For this purpose we created a platform for commercial open-source components, where developers can publish tested and proven code for sale for a fraction of the cost it would take for custom development. I hope this does not come up as an advertisement - though I am looking to increase exposure to our platform - and I truly believe many of the developers in this thread doing custom development could benefit from such a platform - both by having a stock of production-ready code for their chosen environment (be it a framework or an application CMS such as Joomla), and also by publishing their code and generating passive income.

If you are interested, you are welcome to check it out at http://www.binpress.com . We just launched it quietly this week, and are just now starting to look for developers to build up the library of components. I’d appreciate any feedback / input / critic you might have. If you want to join and publish components, that would be great. I hope I’m not breaking forum etiquette by publishing this here, but I thought it would be relevant.

Use the best tool for the job.

These big name CMS’s are great for building typical run of the mill websites. What happens when you start working with clients who want edginess in their site?

In my experience things like Drupal and Joomla are by default somewhat slow and clunky. Yes they build sites and satisfy requirements well, but when it comes to intricate user interface and optimizing queries, running things on strange server set ups… something like Drupal becomes more of a “ok, now we need to figure out how to make drupal do this”.

Another thing about using Drupal is that it starts to drive requirements and capabilities. The company I am at a lot of the time will use Drupals in ability to do something as a scapegoat to get out of spending time developing a feature.

Anyways, the alternative to Drupal or WP or whatever isnt a custom coded application. I agree that in this day and age writing validation code for email addresses or writing database access code is a complete waste of time. Those sorts of things have been abstracted to the point where we have things like ORMs and form validation tools, user authentication etc.

Application development frameworks such as Symfony, Kohana, Ruby on Rails etc give the developer the chance to take advantage of ORM’s, validation, emailing etc etc while allowing them to build user interfaces that make sense, are interest, unique, and not clunky and generic like so many Drupal and Wordpress sites end up being. Its not all about spending less money, its about spending the right amount of money to captivate your audience.

I can always tell a wordpress blog when I go to one, because they all look the same. I find some people are forgetting about the element of creative expression when they are building apps. Its almost as if Drupal and Wordpress are making it too easy for people who don’t know what they are doing and dont understand all the different web technologies to call themselves a web developer and build little magazine style websites.

All in all, you get what you pay for. Anyone who goes to brain surgury school can call themselves a brain surgury and convince you to let them in your head, but do you really want the guy who uses some all encompassing brain surgury kit? Or do you want someone who has selected tools based on preference and their passion for being a brain surgeon and understands what tools they are using and why.

This isnt to say that I think Drupal and word press are for beginners and only noobs use them. They have their place. But Drupal and Wordpress have a misconception of being an easy web solution. It has a lot of features that make menial tasks take a lot less time and allow you to focus more on building the over all product. But you still need to know what you are doing. You still need to understand http request and response. You need to know how and why ajax works. You need to know about caching. Data models. Don’t let the plague of “Drupal is easy” let you guide your choice of platform. You need to understand the web and choose a solution based what you need.

I use symfony because I prefer looking at code than a settings page. I find I can do things faster with symfony because it is immediately obvious how to do something because it uses software architecture and design principles. Symfony’s code generation makes it really easy to setup sites. Things like migrations, Doctrine, all the validation, fixtures, etc etc make it soooo fast to build sites. Not easy. Fast. You still need to understand requirements and build a way for users or your client to deal with their problems effectively.

Alot of CMS’s have plugins that have some sort of generic functionality out of the box for sure, but sometimes its better to implement that your own way to make it work better for a specific case.

I don’t think clients should really care what you use to build a site… but don’t let Drupal and Wordpress destroy your knowledge of how to build websites and start charging up the yang because you don’t know how to build anything that there isn’t a plug in for.

The company I was last at charged 100,000 euros for a custom CMS, and open source was still better. This is not always the case, but it certainly was for in this case.

Open Source is always a cheaper option, and in my opinion it’s better. Not sure if everybody feels the same but this is what I think.

Yes i think you can use the available open source cms like Joomla and its very easy and convenient as it provides thousands of plug-ins that will do your work easily. And for which you not found any plug in you can try writing your own in PHP and implement in joomla cms.

Am totally agree with what webaddictz said, it will depend on what type of project you are doing,
And the open source will be beneficial when in case of low budget small websites and to be delivered in small span of time, then you can go for an open source cms package like wordpress or joomla.

If you are making a CMS for a single client, you can get to know an awful lot about how their business works.

Once you start to discover what is important to their business then you can try and deliver solutions for them which offer savings in terms of say workflow, or make it easier to win new customers.

You’d probably term this “application development”, when you need to be able to fiddle with the underlying architecture, and is when you’d wave goodbye to every pre-built CMS I’ve looked at.

From a development point of view, this type of custom work is usually very costly of course, and your client probably would not stump up for your dev time - but you could swallow some or all of those costs, after all you have a captive audience of testers in your CMS client.

The way to think about it is that you are learning about how their business works and in return providing them with added value.

If you can slowly develop unique solutions that apply across that industry, well you might then be able to reproduce your CMS for other clients in the same channel, the same niche.

So, a single CMS but more than one client.

I think a CMS for a single client is not only wasteful, it is probably largely un-affordable these days.

So if you do want to continue creating quality custom code, stuff that solves a problem, then pick a market niche and concentrate on that full time, 100% and get yourself a mile ahead of the competition.

ps I came across this yesterday which sums up my thinking too:

Go through some of the websites in your target niche, and if you see loads of DruJooWP sites then you can be assured they are collectively lowering the bar, not raising it.

About 5 years ago, I was in the same boat… I had a great in-house CMS that offered rich text editing and the ability to customize the design, navigation, etc… but maintenance was a pain. I switched gears and started using Drupal. Like Wordpress or any Open Source software, there is an army of developers maintaining and improving the product and if I have the opportunity, I can help out too.

If WP is coded poorly, pick another that you do like… There are quite a few out there and I understand WP3 is supposed to be a great improvement (but I can’t say from experience).

Custom work is custom work. In my experience with the WP, Joomla & Drupal installations, you get a blank (empty) slate to build upon. Everything after the basic install is custom.

We’ve been busier this year than any previous year because of Drupal development. None of our clients want basic sites, they want eCommerce, Events Management, CRM, scheduling, self server job/resume posting, Wiki’s, back office document management areas, etc… All of that is custom and even if the solution can be achieved through installing and configuring a few modules, it requires some developer finesse to do it right.

I say embrace one or two of the top dogs in Open Source and get ready to be really busy :wink:

The best thing to do is to use open source technology, and make your own updates whenever necessary.

No matter how many open source applications are out there, a client will always come along with something that just doesn’t exist. One such example is a client of mine who needed a shopping cart with referral based pyramid stuff built in. For this project, I took an existing open source MIT based shopping cart, and added in a backend for clients to setup their accounts, view referrers, and calculate income.

Sure, I didn’t get to charge for the development of the shopping cart as a whole, but the modifications I made were of course billable, not to mention cart installation, server setup, database imports and development, you name it.

It’s also very common that a client will want two applications which both have the required functionality to be ‘glued’ together, such as a video hosting script and a forum to share a single user management table.

While I am not a WordPress fanboy, can somebody explain why they are saying it is crap? The only thing I can think of is functions change a lot, and some don’t make sense. I haven’t coded wp in a while, so I can’t give an example.

But to be honest, allspiriteve, how much of your stuff is really custom. I mean if I say give me a CMS, do you start with a blank slate, or do you have a function file that does all the grunt work, and you just throw in a company name and color scheme?

I see what you’re saying… any you’re absolutely right this isn’t 2002; however developing proprietary application saves us web developers alot of time and we can answer YES, that is possible to our clients with confident; other than thinking ‘ummm i think so…maybe if the application can do it… and hope there is a posting in the community forum’. But on the other hand your right about clients being more comfortable about having an open-source application or just an application that is familiarized in the market.

So i guess that’s where i find my self (i’m sure most of us). Just need to come up with a happy medium; give your client some options … you can have open-source application (WordPress, Joomla, etc…) or you can have my Proprietary software which gives you more flexiblity…

so i guess it really depends on the client and the situation.

@Chroniclemaster1

We used .NET, and many a-time the developers used ready-made components which really did restrict us. Don’t ask me how many CSS hacks I had to pull off to get the thing working. I stood no change in validating my CSS. We used .NET because it was the easier thing to do. Nearly everybody in computing has had some experience with VB Syntax, so it became the best solution.

Microsoft Training Centers really help companies embrace .NET as it’s easier for them to train their staff, since they do not have to do this alone. Having said that the licenses they wanted were out of this world, something which a small web designer could not afford.

Open Source opens the door for new businesses and allows people to compete on a knowledge level and not on a “who can afford Microsoft’s licenses” level. Since this is the case we have seen almost a decline in what web designers are charging. Those .NET developers still have to pay them licenses though. So in my opinion keep things simple and use open source.

Not sure if someone else mentioned but you can easily convince your client to use open source CMS just by saying “Cheaper! Faster!”. If it’s a typical site that looks boxy then you could fulfill all kinds of requirement. Also, from what I remember good CMS allows you to have extentions or plugins. Honestly, if the client wants to have custom CMS then just charge him arm and a leg.

WordPress is a global glorifying nightmare to work with from a programmatic standpoint. You either sacrifice the quality or your code and best practices or move on to something with more effort and quality put into the programming. Joomla and Drupal, while not perfect are much easier to customize from a programmatic stand point than WordPress. Facebook could probably have been built on WordPress, or even Amazon, or even … but, they know better. Just because you can doesn’t mean you should. Picking the right tools for the job is important. Most people who use WordPress for everything only know WordPress and couldn’t program themselves out of a box without it. WordPress dependency is an epidemic, not something to supported. its a great, cheap, quick way to get blog or small site up and running, but anything beyond that there are more appropriate tools. As a programmer you can’t honestly look at the code and think, its good, its horrible, its the kind of code you just trust and hope that works. If the creator had put as much effort into appealing to programmers as much as designers, than it may be a different story.

Please do tell. I’ve worked with the major players WordPress, Drupal, Joomla – none of them are programmed all that well. Some are better than others, but they all exhibit decisions which would make any programmer cringe. My preference for code quality is Joomla, but Drupal is more flexible due its implied global procedural nature. Drupal is probably the closest to working similar to a desktop application considering its clever, hook based augmentation system. Drupal is very clever, if you don’t like dealing with or debugging clever code your probably better off with Joomla, which is a little more stupid, in opinion. If you like dealing with a god awful but popular mess – WordPress.

There is still a place for custom development. The thing is, most websites out there exhibit a similar structure and don’t have a huge budget. In that case something like WordPress or Joomla is perfect. Drupal, itself isn’t really a system which you can bet up running from the get go. Drupal provides a nice back-end user interface out of the box, but still there is a quit a bit of customization involved. I would compare Drupal to the framework of a house while Joomla and WordPress are an empty yet completed house.

However, if WordPress would fit the bill for most of your clients needs, than perhaps it would be a good choice to use it. On the bright side it is well supported, has a huge following and extensive documentation. Not to mention the abundance of open source and low priced design work.

Unless your working on something that needs to be very customized, needs to scale well I don’t think its unprofessional to use open source software. I myself prefer to build everything from scratch, than again I’m in this business to make money and grow. Open source is here to stay, so people might as well embrace it rather than fight it. Just because a open source solution is programmed poorly doesn’t necessarily mean you should never use it or be afraid to. Its all about picking the right tool for the job. If you say WordPress would suite your needs well, than use it. What WordPress lacks in programming quality it makes up in community. Similar can be said for the others mentioned also. Its a give and take.

open source might not be best all the times but if you want to freelance you might visit these websites http://www.vworker.com or http://www.elance.com

Probably depends on the client, but I currently can’t even determine that since I don’t have much experience with open source apps. I don’t know their limits, but I know the majority of what we do can be done for free w/ Wordpress.

I’m asking here because this is a question specific to the PHP community, and I know I generally get great answers from the people who post in this forum.

As for what: I guess I’m mostly wanting to know what other people have done in this situation. Of course the answer to what I should do is subjective-- I’m not looking for advice specific to me, but advice in general on how to treat open source as a custom application developer.

I agree with all your points. I just find as a general trend these “CMS”, or CMF if you will type packages, just seem to be having an influence on what and how a site ends up being built.

Building from scratch a custom CMS is not profitable in the face of the increasingly and improving open source CMS offerings. That is an obvious point. However, if the client does not appreciate the goodness in open source CMS, then offering to one built from scratch with a price tag to match is inevitable. So code custom CSM if someone asks for it. Otherwise work with one of the many freely available ones and customise for their needs.

As regards what route you take, that is a business choice that you have to make. If I were you, I would be doing both.

Yeah I suppose if that’s all you know but I’ll give you the benefit of the doubt :lol:

Besides that’s only a small part of the equation when building sophisticated web apps on a CMS foundation. What I’m seeing more and more is mashups featuring various technologies like CRM’s, data warehouses, etc…

More and more people in our area want streamline their businesses and move traditional business processes online. This requires a little more finesse that clicking some checkboxes in a wizard… You need to know the CMS core so you can write modules or in more extreme cases, you need to modify some of the code in the applications (and document the changes) so that they play nicely together.

1985 GSXR750: Wiseco 907 kit with lightened pistons, 38mm Mikuni Flatslides, ported 88 (slingshot) head, stainless header with carbon fibre yosh can, Dyna (green) coils, pods, 94 GSXR USD front end, EBC pro-lite discs, 17" rims, Öhlins rear shock… And I think that covers it.

1986 GSXR750R Limited Edition: Pretty much bone stock except for a K&N filtercharger and Dyna mini-coils.

:smiley:

I think you’re misunderstanding my position. We’ve never done a base Drupal install (not even our first). Rather we use Drupal as the foundation and develop the project as an extension to Drupal, building modules as the connecting blocks and in some (extreme) cases customizing the code of the applications to make them play nicely with each other.

Our clients for the most part don’t come and go. Some have been with us for the last 10 years and a few who’ve been with us since we started some 15 or 16 years ago. Most of them are corporate with boards of directors and others who don’t know us and they have to do their due diligence to ensure that their investment can live on beyond our relationship should something occur to cut it short. It’s just business sense so we emphasize that they are not locked in to us or the technology. If something should happen and we aren’t available to them, they can find another tech who knows ‘X’ and they can carry on. This was not possible with the custom CMS we developed and used earlier.

On the custom side, we still have one major custom application in the wild that manages the online membership profiles of an organization, Everything from membership types, to exams, work experience, continuing education, resumes, job postings and events are managed through a custom web app. It was initially started about 10 years ago and has been extended through various projects to become a full blown CRM on steroids. Unfortunately at the time nothing was available to build it with the capabilities of todays CMS platforms however with todays CMS, given the chance I’ll port it over as quickly as I can. I’ve even gone to the trouble of putting together a requirements doc and map to move it over when I have the chance. It will be much easier to maintain if it’s built on a CMS that leverages a community of developers and bug testers.

Absolutely… We landed two new websites for the same reason… The existing sites run on a proprietary CMS and the host doesn’t get around to supporting their customer base. We’ll be moving them to well supported Open Source solutions.

Funny - I literally just had an enquiry from someone who wanted some updates doing to their site. They’re using a custom build CMS and their web company has gone bust - as a result they’re locked into that system and haven’t got access to the core files.

Time for a migration to a decent commercial CMS methinks :wink: