Josh Lewis

Why build your site on Django?

Django is not a CMS, but rather a powerful development framework designed to enable the rapid development of web applications, big or small.

I try to be framework agnostic when I approach any new project and decide on which framework or platform makes the most sense for your needs. One of the mostly common solutions I recommend to clients is a fully custom built site based on Django.

What is Django?

Django is a web framework, which raises the immediate question of what is a web framework? A web framework is a collection of functions and tools to help speed up developing a web application in a certain programming language. Django is so good at aiding development that it makes developing a website a much simpler task than starting from scratch, indeed the frameworks tag-line is 'The web framework for perfectionists with deadlines'.

Django is written in the Python programming language, and this is one of its key selling points. The Python language is very well designed but most importantly is very easy to read and a pleasure to write when compared with some other languages. There are thousands of API's and libraries available to use in Python.

Flexibility and Control

The primary reason I will recommend Django is the absolute and total control and flexibility it gives over the project. By building from scratch everything can be 100% customised to suit the needs of your website and your business.

It also massively future proofs your website. If in a year or two you need to add on a more complex feature or internationlise your site you will not be restricted by a decision you made when your site was first built as you can't get more freedom when every piece of the site is custom built.

Reduced Bloat

Because Django is a software framework, only the imported functionality is used. This means a small Django project could be as small as 5 or 6 files with a few hundred lines of code. Compared with a CMS like Wordpress which will hundreds of files with thousands of lines of code as part of the codebase the reduction in bloat is easy to see. This reduced bloat, significantly increases performance and maintainability without hindering what can be done.

Why not use Wordpress/Drupal?

Wordpress an Drupal are both very established website CMS's. I strongly believe both systems make for a poor choice for building a modern site on:

  • They are typically slower than Django (made worse by plug-ins).
  • They both have very bad issues with security (made worse by plug-ins).
  • They can be unstable and break when upgrading (made worse by plug-ins).
  • They aren't designed to manage complex applications.

So why are they so widely used? Because most developers are tied to them. Most freelancers will have only really built on Wordpress or Drupal simply because they're much easier to get started with. It's possible to setup a Wordpress site without any technical knowledge which is great for lowering the barriers to producing a website, but this is at the expense of performance and flexibility.