Open source has been around for ages and much of the web is built using it. Every developer knows about Linux, Apache, MySQL and PHP (LAMP).
But what about all the other open source projects out there? As a web developer you can save lots of time or optimize the performance of your applications by using many of the other projects that are available.
Lets take a look on what’s out there, free for everyone to use.
New databases on the block
Traditionally you might have been using MySQL. Although MySQL still is a great database many new alternatives has shown up trying to solve some of the issues MySQL has.
MongoDB
MongoDB is one of the new so-called “NoSQL” databases. It’s scalable and offers high performance.
Apache Cassandra
Apache Cassandra is similar to MongoDB in that it’s a “NoSQL” database, which is scalable, and offers high performance. It works well with very large and active data sets.
More
There are lots of more alternatives out there to choose from depending on your needs. Take a look at this list in Wikipedia.
Cache your data
As some data is used frequently it makes sense to put it in memory instead of querying a database each time. This can speed up a web application greatly.
Memcached
Memcached is a simple but powerful way to cache small chunks of data in memory.
Redis
Redis can be used in the same way as Memcached but also includes many more features. For example it can also store data that should be persistent on disk.
Speeding up web requests
Most websites use the Apache web server to serve pages. This works great for most sites, but as soon as you start to get lots of traffic you might want to optimize things a bit.
Nginx
Nginx is a web server, much like Apache, but it’s extremely fast. It’s often used to serve static content such as images or as a load balancer.
Varnish
Varnish is a cache that you put in front of your regular web server. It works by putting all your popular content in memory and serves it directly, instead of having to pass everything on to your web server.
Manage your content easily
If you’re building a website which will have content that will be added and edited by writers you want to have a content management system (CMS). A CMS makes it easy to manage blogs and websites and also offers lots of plugins that can extend the functionality of your site.
WordPress
While WordPress is a blogging platform it can also be used to manage whole websites, big and small.
Drupal
Drupal is a complete platform that can be used to build scalable and flexible websites.
More
There are lots of Content Management Systems available. See this huge list at Wikipedia.
Having an interactive web user interface
Today you can build a web application that works in many ways just as a desktop application using techniques such as JavaScript and AJAX. Using JavaScript frameworks it has become really easy to build great web applications.
JQuery
JQuery is a framework with plugins to help build dynamic websites with AJAX interaction and animations.
MooTools
MooTools is just like jQuery a framework to help build powerful web applications using JavaScript.
More
If you want to try any of the other alternatives look through the list in this Wikipedia entry.
Other cool stuff
When you start to build complex web applications there are lots of software, libraries and modules that can help you solve problems that would otherwise take a lot of time. Below are two examples just to get you started.
Node.js
Node.js is an event-driven I/O framework where you write applications in JavaScript that runs on the V8 JavaScript engine. It’s a great way to build fast and scalable network programs.
RabbitMQ
RabbitMQ is a reliable and scalable messaging system that can handle high throughput. If you need to exchange data between systems or applications a messaging system is a great way to do this with lots of benefits compared to a custom solution or storing the data in a database.
Use a framework to speed up development
Whether you are using PHP or another language there are several different frameworks available that can help you speed up development and make your code easier to manage.
Symfony
Symfony is a PHP framework that includes components and tools to help you build complex web applications faster. It also has over 1,000 plugins contributed by the community.
Ruby on Rails
For fans of the Ruby language, Ruby on Rails is the most popular framework available.
Django
Django is a Python web framework developed to help you build high-performing and elegant web applications quickly.
More
See this list on Wikipedia for a more complete list of web application frameworks available for different languages.
Spend your time wisely
As a developer it’s always worth the time to keep up to date on what new software is available as it can help you solve complex tasks easily.
Often time spent planning and doing research at the start of a project is well worth it since you can identify upcoming issues and how to solve them in the best way.
The days where you program your way out of every issue are over, it’s more about using existing technology in smart ways.
There are of course a bunch of other software out there that we didn’t include. Let us know in the comments if there is anything you think is missing.