Working as a developer means you have to learn to read source code and project your own needs into each website. You have to learn which projects require a set of codes, and which projects can be created entirely from scratch. This process is learned through enough repetition and skill within the industry.
I want to use this article to discuss some finer points with open source web development. Creating projects based on free CMS’ is often the quickest and simplest way to go. But you need to know how to handle open source scripts and keep yourself from running into a wall. This requires a bit of practice, but also just some time dedicated to playing with your script of choice.
Why Content Management Systems?
You may be asking why should projects be created with CMS’ instead of building on a simple PHP or Ruby codebase? There are plenty of great examples like CodeIgniter or CakePHP. But these require a lot more backend development, basically digging right into PHP and programming your app from scratch.
When working with a CMS you already have functionality working for you out-of-the-box. When you download and install WordPress there is no major PHP customization required. Even inexperienced programmers could setup their own WordPress blog or website. And the same goes for editing and updating content, too.
If you have a truly unique idea and love programming then you should try out some backend frameworks. But for developers who just need a quick open source solution you’ll want to stick with Content Management Systems every step of the way. There is enough diversity out there where you can really nitpick your needs and still find a suitable solution.
Build a Common Solution
If you are working freelance than most of the projects you run into will be perfect for CMS backends. These can include portfolio websites, businesses, eCommerce shops, or even online discussion boards. There is open source software out there for almost any script idea you can think about.
But what is even more interesting is the customization off many of these platforms. WordPress and Drupal are the two which immediately come to mind for incredible customizability. In fact many developers would argue Drupal is a PHP platform which happens to include a CMS. Once you understand the documentation it’s possible to create almost any application on top of Drupal.
And when using the WordPress plugin system it’s also exceptionally easy to replicate your own functionality here as well. There are already so many free plugins it’s practically mind-blowing! You may combine a series of these together or even build your own plugin to expand WordPress with even more custom bits of functionality.
Master of the Art
I would normally suggest that any web developer get into trying at least 2 or 3 different CMS solutions. Some projects are just built different than others and you may have an easier time going through some different documentation. It’s also important to consider what your typical needs are within any given project environment.
For example, the open source project Fork CMS comes equipped with multi-language website support. You can quickly append subdomains based on the webpage language and support 2 or 3 or even more. Now this is also available for Drupal and WordPress users, but certainly not in the same manner. So if you are building a project which requires multilingual support Fork may be worth investing some time into.
But should you ever spend time mastering the system? This is an interesting questions and will obviously change with each developer. You should ask yourself which CMS do you honestly enjoy the most? Which can you see yourself using on the majority of web projects? Because I say take the first answer you think of and run with that!
Even if you start out learning Fork and quit within a couple of weeks it wasn’t wasted time. You will have learned that Fork is a great CMS, but it doesn’t completely suit your needs. Then you still have time for learning other systems in the future.
Flipping Through Scripts
One final point of inquiry is the idea of different open source scripts. Content management is such a diverse word and it usually refers to static, base website content. Small businesses or online retailers often need to manage their content on the backend to fix up inner pages.
But there are some other beautiful alternative open source solutions which are not inherently far off from Content Management Systems. Pligg CMS is one of my favorites which is a clone of the old Digg-style user voting systems. You can launch your own social news community where users can register an account and submit articles into your website.
The functionality which comes immediately after install is incredible, and certainly unmatched by any other open source project. And that is precisely why projects like Fork and Pligg stay around for so long – because they fill a niche in the open source market which is desperately needed. You could argue a similar situation with phpBB as one of the better open source forums.
I think if there’s any good ideas to take away from this it should be diversify your knowledge. Don’t be afraid of trying new scripts or resources which you have never heard of before. Web developers are best liked for their fearless leaps into the unknown and willingness to adjust into new environments. And with such a large open source community this process has never been easier.
Reach Out for Answers
This final point is a very important one and I want to throw it in quickly. Nobody can just use WordPress for a couple weeks and instantly know all the major development points. You will need to spend a long time testing and debugging within any CMS you choose. So please do not get discouraged if you’re still struggling with problems a few months down the road.
And similarly do not be afraid of asking questions and posting in the support boards. Most open source projects feature very skilled developers in the team who can answer your most confusing requests. Whether you connect one-on-one or in a public forum, this will still provide an excellent resource for confusing bits in your project work.
And similarly there are very knowledgeable developers in communities like WordPress StackExchange who are often happy to help you solve creative problems. Don’t let confusing code become a roadblock in the way of finishing your projects. Get out there, socialize, learn new things, and don’t be afraid of asking questions.
The Internet is a huge place full of data and it’s growing larger every day. Web developers have joined the open source movement because it provides a method for experienced coders to share what they know with more inexperienced coders. It’s also a great way to share what you already have built, in the hopes of helping somebody else.
I do hope this article can get you thinking about building projects entirely on open source libraries. There are so many to choose from, and even alternate programming languages too. You will have to spend time looking into solutions and carefully testing each one. But over time you will figure out which CMS brands work best for you and these are the systems worth learning. If you have any similar questions or theories on the post feel free to share with us in the discussion area below.