There are a lot of different, competing, technologies to build a site with. From the front end of the site and client side technologies to databases.

How do I choose a technology stack, what factors should I consider, and how do I avoid getting key technical decisions wrong from the outset?

  • This should be a community wiki question. Commented Jul 8, 2010 at 20:37
  • it might be prudent to tell us what kind of a site this will be so we can give a more informed answer ie is it going to be a blog, forum, q+a site etc
    – seanl
    Commented Jul 9, 2010 at 8:45

4 Answers 4


The truth is that if you're not building a site that will have large scale traffic from launch, it doesn't really matter what stack you choose. Just pick whatever stack will allow you to get started the quickest so you can get something up and running before you lose any motivation. Then, keep improving the site.

Launching a site and getting it out there is more important than getting it right. And if the site becomes wildly successful, that's something you can deal with later when you have revenue to cover it.

  • Absolutely true! Commented Jul 9, 2010 at 12:41
  • I've fallen down the "What should I use?" rathole more times than I would like to admit but one thing I would preface this with is doing a little research on hosting if you are using a shared option. Hosting prices/options can be unexpectedly limited based on what stack you choose. Commented Jul 9, 2010 at 14:53

This is a pretty complex question. When developing a new website I would say you need to choose a language that you know and that you know is going to be well supported in the future.

In my opinion that limits you to several languages. Specifically, Python, Ruby, C#/VB.NET, Java, and PHP. Those languages have enterprise level APIs and features and should be support going forward.

Frankly, the most important thing is going to be the people. If you get the best people they will help you make the right right decisions and everything else will fall into place.


Start with what you know and don't be afraid of change.

There is a tremendous value in using technologies that developers are experienced and comfortable with. You can get moving quicker and will spend less time messing with the technology and more time delivering value to the users. TekPub is one example where they started in ASP.NET, but then moved to Ruby on Rails once they had time.


The one thing I can't recommend enough is going with the MVC (model / view / controller) approach no matter what language or platform you go with. Almost every language I can think of boasts several MVC frameworks, even Perl (the BBC came up with 'perl on rails' believe it or not).

You'll find that by using this, its much easier to introduce new features to your site without breaking the stuff that made you popular in the first place. The separation of the controller (query / logic) code from the view that is actually presented to the visitor makes things much, much easier to maintain.

The worst thing that can happen to a new site is that it becomes a victim of its own success. This typically happens when the site must scale, in a hurry, yet it cant. Addressing the technical end of that is only one part, there is also the financial aspect to consider.

For instance, SE sites are built out on a Windows platform. This means, scaling is going to mean more licensing costs, but the sites seem to be engineered well enough that by the time more resources are needed, the revenue is there. A lot of time and money went into that engineering, which you may or may not have.

As such, I recommend going with a language / framework that is portable across all platforms (Python / PHP come to mind) so that you aren't locked in. Your site will eventually take on a mind of its own and the direction it needs to go will become obvious.

Not the answer you're looking for? Browse other questions tagged or ask your own question.