New Custom Website Setup

Custom built sites beat CMS-based sites in terms of efficiency and performance, and leave you with maximum control over your site. With custom built sites you are not chained to the whims of the CMS developers, and will not need to compromise on exact functionality, layout, icons or any other feature of your site.

However, maintaining a custom site does take a higher level of skill – and so is appropriate for website owners who are either comfortable dealing directly with website code, or plan to have at least a part-time developer on hand to make changes when needed.

Custom sites give you great flexibility – and are certainly the best option if you plan to embed web-applications (either from the outset, or at a later date) – but it’s definitely worth considering the full implications of what going completely custom entails: each and every aspect of your site is going to need creating from scratch. If you want logins, these will need to be coded. There will be no convenient click-to-install SEO plugin, and you will be on your own with things like title and keyword optimisation. Everything from page caching to responsiveness will need to be carefully thought out and coded up.

Of course this is an area where we as thoroughbred coders come into our own! We have the capability to deliver very high quality custom sites, and put a great deal of care into the site architecture, code structure and choice of technologies. We can promise to engineer your custom site so it remains flexible, maintainable and extendable going forward.

Brochure Style Sites with HTML5 and PHP

The simplest custom sites are probably plain HTML websites. If you have a reasonable understanding of HTML or feel confident you can get up to speed with it then you might consider setting up this kind of site. However, you should be aware that a system which just serves static HTML webpages is somewhat limited for two main reasons: there will be no way to

  1. enable user login or any other server-side interaction, such as posting of web-forms or getting personalised information from the server
  2. ‘template’ code, so you’ll have to repeat e.g. the html for your menus on every web page. Then if you want to change the menu, you’ll have to make the change in multiple locations – with the possibility of making a mistake, or missing one of the occurrences

For these reason most owners of simple HTML websites soon find themselves upgrading to using PHP very quickly, if only to use PHP “include” statements which allow templating and thus the avoidance of repetition. PHP is by far the most popular language to create webpages, mainly because it effectively embeds within the HTML, rather than being separate. This makes migration of HTML to PHP very simple – in fact a plain HTML page already renders under PHP just as before. All you need to do is add some PHP tags on top to get that server-side functionality.

Case Study: PHP Site Setup with CodeIgniter

Developer Evaluation

[This is] a custom Linux/Apache/PHP/SQLite setup on CentOS 6.0 which will be used as an in-house development environment for [the client]. It has been requested that Apache be set up so [a certain ip] points to a webpage served via the CodeIgniter PHP framework. IP tables be set up to allow access to [a certain IP range] on the internal network only, and an SFTP chroot jail be created in [a specific directory].

Steps Taken

  • Installed PHP 5.5
  • Installed SQLite
  • Installed and Configured Apache 2.2
  • Installed and set up CodeIgniter
  • Configured IPTables
  • Set up SFTP
  • Configured SFTP Jail

Time Breakdown

Statistics

  • Manpower:
    1 Developer + 1 Supervisor
  • Time to Completion:
    1 day
  • Server Downtime:
    None
  • Total Developer Hours:
    3
  • Cost per Hour:
    $45
  • Total Cost:
    $135

Result

Successful server setup

Heavyweight via Python, Perl, Java

If you are a hobbyist web-developer interested in going your own way, then a custom setup using PHP is a great way to learn. However, for more serious web projects we would definitely recommend moving away from PHP. In fact, we believe PHP is automatically a contradiction in programming best practice, since it is designed to inherently violate the Model, View, Controller (MVC) paradigm. PHP is weak for web-application development precisely because the controller code is generally buried in the view (ie in the HTML). Although it is possible to create websites using PHP which do correctly separate controller and view, generally this does not happen in practice.

Systems which build pages from separately stored templates are certainly preferable, and languages which are geared towards this kind of delivery are thus recommended. Perl, Python and Java are all long-standing, prominent and powerful server-side languages which can do this very capably. Each of these languages has a substantial history, which means they have been well tested in battle, and improved and refined over the years. They each have active and dedicated communities, and extensive pre-written available libraries.

Of course there are many differences between these heavyweight server-side languages, and which is “better” is the subject of endless debate – which we won’t go into here. The truth is probably that each is slightly better suited to different specific situations – and this should be researched carefully before setting out. The chances are that if you are considering this kind of setup, then you are probably already using -or planning to use – professional developers for your site maintenance.

Custom Sites with New Languages

Some more recent languages which are in vogue and keenly talked about are things like Node.js, Go, Erlang, Haskell, Clojure, Swift (etc!) Indeed the current flavour of the month seems to be “functional languages” which are discussed in the same enthusiastic tones as the concept of “object-orientation” was back in 1992. Realistically it is obvious object-orientation has not enabled programmers to achieve anything they couldn’t already – for example the linux operating system is still written in plain, non-object-oriented C.

In truth those languages which allow object-orientation but don’t force it seem to be the ones that have persisted. In the same way it is anticipated that purely functional languages will go the same way as purely object-oriented ones – we may learn the odd thing from the functional languages fad, but it’s unlikely to make a significant difference to what you can actually produce. Again, you can’t ultimately achieve anything with a functional language that you can do with a traditional one – so our advice would be to avoid recently introduced languages because of their limited libraries and support, and instead go with a long-standing one with a good history (and a good chance of finding developers in!)

However, there may be some situations where a specific use case is better suited to a more recently developed language. If you are looking to develop a website using a more recently introduced language, and are looking for advice then we recommend you get in touch and we can discuss your options.