Great open source stuff for web developers and web developer wannabes.

I put together this page for the beginner/ amateur website developers out there trying to familiarize themselves with their options for putting together a website.  Open source has revolutionized the web, and you could also say that the web has revolutionalized open source. Neither would be what they are today without the other. But beyond the philisophical aspects of this relationship, of key importance to amateurs that want to have a web site or two, open source gives them access to tools and technologies that allow a small independant site to be comparable to a site run by a large coorporation. 

Update: I originally wrote this article in 2008, and almost 15 years later almost all of it still applies. The main changes are that Mambo no longer exists and I no longer recommend using FTP/Filezilla due to security issues. 

The backbone that makes it all possible.  

Linux and Apache and MySQL and  PHP . Known as LAMP, this is the combination that makes the web affordable for independent websites. But also provides a lot of freedom in changing what the web is. Linux is the open-source operating system that had revolutionized the software industry. Apache is the open source web server software that runs most of what you see on the internet.  PHP is an open-source programming language, and MySQL is an open-source database program. Many of the open source web applications are based on this combination. Since this stuff will already be installed on the web server (if you get a linux hosting account), you don't really need to download these, but you can set up your own desktop machine for testing if you like. 


Some of the more popular open-source products that you can base your site on. 

These are all open-source programs that essentially act as your website (see my article on Website Basics ). As a web developer, you would download one or more of these, upload it to your website (your hosting account), run the install program, then configure and possibly modify the program to meet your specific needs. You may encounter these programs described as  Content Management Systems (CMS), Wiki software, or Blog software. 

Joomla    This is the CMS software that this website is based on. Joomla is open source and has a very active user community. It's based on PHP and MySQL and is highly customizable with many extensions. The best part (for site administrators) is that Joomla has some very easy to use administration/configuration tools, so not only is some of the setup and ongoing maintenance a lot easier, but even thing like installing extensions are a lot easier than with some other programs.

Mambo  I guess you could say that Mambo is Joomla's older brother/sister. Mambo was a very popular open-source CMS. In 2005, there were some developers that didn't like the way Mambo was heading, so they basically took the Mambo code, renamed it Joomla and began developing it separately. This is truly a great example of the freedom that open-source brings.  At that time, Mambo and Joomla were still very similar products, but as time went by, Joomla kept getting better, and Mambo went the way of the dinosaurs. Fortunately there was the ability to migrate from Mambo to Joomla, but any of the open source products can go away at any time.

Drupal   This is another very popular open source CMS product. I haven't use it so I can't comment on the functionality.

Wordpress   This is probably the most well-known blog software.  For someone looking to get a personal site up and running quick, blog software provides a fairly easy path. 

Mediawiki  This is the open source Wiki software that Wikipedia runs on. It's also based on PHP and MySQL. I use mediawiki for my Trail Wiki at .  Mediawiki is a very powerful wiki platform, unfortunately, the mediawiki project is so fucused on wikipedia (the origination of the program) that it neglects to some extent, the rest of the user community. The result is that mediawiki is not as user-friendly for administrators as some other open source content management tools (like Joomla) and doesn't respond well to feature requests from the community unless they are features they intend to use in wikipedia. That being said, I'm still very happy using mediawiki for my wiki.

PhpBB   PhpBB is a very popular open-source forum program.

This is only a short list of some of the more popular open-source programs for your web site. The open-source community is large and there are many more CMS, Wiki, Blog, and Forum programs available, so if you're interested in setting up a Wiki, feel free to search out the numerous other open-source wiki programs available.  Though I don't want to downplay the usefulness of some of the lesser- known programs, there are some advantages of going with a more popular program. For one, a more popular program will generally have a more active user community, so there is not only more information available to help you setup, configure, and modify the program, there will also likely be many more extensions available for the program. In addition, one of the problems with smaller open-source programs is that they sometimes stop being developed. Some of these are just hobbies for the developers, and at some point the project becomes more trouble that it's worth. With a more popular program, even if the developers choose to stop, or go in a direction that you don't like, it's much more likely that someone else will pick it up or branch off into a similar product.

Some great open-source utilities that make everything easier. 

phpMyAdmin  This is the server-based utility that helps a lot of us non-programmers administer our MySQL databases. Most web hosts that provide MySQL databases also provide phpMyAdmn with the hosting account. I primarily use phpMyAdmin to backup (and restore) my MySQL databases that I use for my Joomla and Mediawiki sites, but I have also used it to directly edit database records (that's how I completely eliminate spam from my wiki). This is also a program that would have already been installed by your hosting company.

SpamAssassin    If you host your site on a Linux-based hosting account, you may also get spamassassin included with your email accounts. Though there are other very good ant-spam software product available today, I believe that SpamAssassin has probably had the most significant impact on keeping spam out of our inboxes. For those that may be too young to remember, email spam used to be ridiculous. And thanks to SpamAssassin and similar products, it just a minor annoyance these days.

Filezilla   This is a very good open source FTP client for Windows, Linux, or Mac. It's fast and has a very intuitive user interface (especially if you are a windows user).  I used to use Filezilla quite a bit, but I no longer use it or recomment using it.  See my article FTP Basics for some basic instructions on using Filezilla. 

Notepad++   This is an open source notepad replacement for windows. To call it a notepad replacement is actually not a valid description since it is so far superior to notepad for viewing and modifying code (HTML, PHP, CSS, etc).

7-Zip for Windows   If you plan on using open source programs on a linux server but are running Windows on your desktop, you very likely will end up needing to uncompress some  .tar or .tar.gz  files at some point. 7-Zip is an open source zip program for windows that allows you to uncompress or compress these file types (as will as the standard .zip file type and a few others). 

NVU and KompoZer   NVU and KompoZer are desktop applications used for web authoring. They are basically WYSISYG programs for creating the html and CSS that makes up your site.  Right now (early 2008) these are basically both the same program and it is not clear whether one, both, or neither of these will continue to be developed in the future.