Which web technology should I use?
A handy guide for non-technical founders
I’m frequently being asked by non-technical startup co-founders about which technology choices to make for building their businesses. In this article I’ve purposely not covered technical reasons for choosing one technology over another, rather have thought about what founders will be concerned about.
I hope this article helps you to make better decisions; please do make sure you get good quality technical advice specific to your project requirements before committing to a technology.
Prototype & Proof of Concept
As a believer in the lean startup methodology, I strongly suggest you build proof of concepts to prove the market. i.e. use whatever tools you have to get to market validation as quickly as you can and if you want you can throw the code away afterwards.
Last year, I built a prototype for my new startup No More Filing using PHP. It was built with no scalability but was thrown together quickly and importantly (as I was bootstrapping) cheaply. Now I’ve raised some seed funding, I am re-architecting and starting again with Ruby on Rails (my generally preferred backend stack).
How much tech do I need?
First you need to decide if you’re startup warrants a customised, in-house developed platform of it’s own or if your idea is actually suited to a CMS or other off the shelf platform like Wordpress, Drupal or Joomla.
Many startups are not actually solving technical problems but rather using technology that already exists to solve problems or provide products and services.
If you’re doing something fairly routine, like offering content or products via e-commerce, there are already a lot of platforms out there that you might just need help with to customise e.g. many of the largest websites out there are using Wordpress for part or all of their websites.
If you need something more built to your specification, you may need to hire some developers and build your products using a language/framework. Here are some pros and cons of some of the most well known around.
Hiring the right person(s) is as critical as choosing which technology to use, how to find them is the subject of another article. However a lot of the pros and cons below revolve around the ability or not, to hire good quality developers.
PHP — Possibly the most widely used web development language.
Pros: There are a plethora of PHP frameworks and plenty of developers available on the market at a reasonable price.
Cons: With the popularity of the platform and ease of learning basic PHP, there are a higher percentage of poor to average developers on the market which makes finding good ones that much harder. There is also a lot of fragmentation due to the amount of frameworks.
.net / asp.net / C# — Popular with fans of Microsoft
Pros: .net is easy to learn if you have experience of visual basic and working in a Microsoft environment. There is a good pool of developers available. .net has a reputation for great documentation.
Cons: .net is being seen as a passé framework with many developers moving on, therefore the pool of available development talent is shrinking. Not popular with developers who don’t like anything Microsoft.
Python — structured and mature, python has been around since the internet was still in nappies
Pro’s — stable mature, well supported, great quality pool of developers, code is well structured so easier to pass on to new developers
Con’s — development pool relatively small but strong
Ruby on Rails — my language/platform of choice
Pro’s — fast to build in, very well supported, large contractor base. Ruby developers tend to be very passionate and often more commercial / business savvy than other developers
Con’s — London contract day rates now at £500-£600, hard to find good permanent developers (contract rates are just too good).
Beware false economies
Despite the greater day rates, I tend to use Ruby on Rails for serious projects because the caliber of developer who will ‘get’ what I’m trying to do and implement it quickly is (in my experience) above those of other technologies. There is also a reduction in risk as the chance of hiring someone who doesn’t work out is lower.
bootstrapping — developing your startup with no external fundraising
back-end — the part of your platform you don’t see, as opposed to front-end which is visible to the user
stack — stack of tools, languages, test frameworks etc that make up your technology platform
nappies — British English word meaning diapers