This question keeps coming up a lot on Stack Overflow for some reason:

What was Stack Overflow built with?

Some even wondered if Stack Overflow was built in Ruby on Rails. I consider that a compliment!

This question has been covered in some detail in our podcasts, of course, but I know not everyone has time to listen to a bunch of audio footage to find the answer to their question. So, in that spirit, here’s the technology “stack” of Stack Overflow, the stuff Jarrod, Geoff, and I used to build it:

framework Microsoft ASP.NET
language C#
development environment Visual Studio
web framework ASP.NET MVC
browser framework jQuery
database SQL Server 2008
data access layer LINQ to SQL
source control Subversion (now Mercurial through Kiln)
compare tool Beyond Compare
source control integration VisualSVN (now, VisualHg)

We have a few other minor dependencies as well, such as ReCaptcha, DotNetOpenId, and the WMD control (which we subsequently rewrote), but that’s about it.

«
»
  1. Brad Wilson says:

    You clearly left out the most important fact:

    What flavor soda was required to build Stack Overflow?

    :)

  2. ripper234 says:

    I’m curious, why did you choose VisualSVN over TFS?

  3. Jay says:

    Interesting, you guys used everything that I use in my everyday at work except for the MVC framework. We are waiting for it to get out of beta.

  4. iAn says:

    You mentioned in a podcast #22 about the cpu usage – I’d be interested to hear about the server setup SOF is running on – how it’s holding up (especially after a slashdotting), and what plans you have for scaling

  5. Jesse Foster says:

    I dont know if you are fielding questions on this topic, but I would like to know what technology you used for your dal. Did you guys run with linq to sql, or did you use something like nhibernate.

    Jesse Foster | jf26028

  6. John says:

    1 out of 9 (jquery) ain’t bad.

  7. Jared says:

    That’s a lot of expensive tools for a very simple website… No wonder there are so many C# guys on here.

  8. Jess Sightler says:

    @Jesse Foster: From the podcasts, they’ve indicated quite a bit of LINQ usage.

  9. Sergey says:

    So how did you guys implement those REST-ful URLs? Isn’t ASP.NET really bad at that out of the box?

  10. shawn says:

    >sergey asp.net MVC

  11. Łukasz Sowa says:

    Nice :) It’s nice to see such a large project based on ASP.NET MVC :) Are you going to open source it?

  12. Mark says:

    Microsoft stack?

    Let us know how that works out for you.

  13. Henry says:

    What was the reasoning behind going with Team Suite? Was there some particular feature that you just had to have?

    With only three developers even VS2008 Express Edition would probably suffice.

    The only other reason I can think of would be if you happened to have a few licenses for Team Suite lying around (quite likely seeing as you worked with MS technologies in your old job).

  14. jeo says:

    Last I checked, plentyoffish.com was running on the microsoft stack, on half a dozen servers, maintained by one programmer spending a couple hours a day, and had enough traffic to bring in a million bucks a month in google ads. So I suspect it will work out just fine.

  15. Benjamin Perdomo says:

    Lots of FUD are among the developers about the Microsoft stack. There are a lot of stable, fast and well build sites that shows otherwise.

  16. test o'tester says:

    .net indeed

  17. dkaz says:

    plentyoffish is one of the worst looking sites on the web…image scaling on it is just horrible

    what i’m trying to say is that that site’s success has ZERO to do with .NET being a good technology – if the kid that started it knew PHP the site would be just as successful

  18. Jesus DeLaTorre says:

    When do you plan on releasing the ER diagram? :)

  19. scott says:

    @dkaz – it doesn’t matter how the site looks or if it would’ve been built in some other language had the dude known php to start… the point was to illustrate that the technology can scale to meet demand very easily.

  20. ryan says:

    And some PHP/wordpress for the blog…

  21. Jon Limjap says:

    LOL @ people who immediately think Microsoft = FAIL.

    Anybody can make a bad application out of a good framework. On the other hand (though not conversely) a good programmer (or a bunch of good programmers) can make good applications out of almost any framework.

  22. Anthony Main says:

    Just wondered guys if you’d include your server architecture and plans for expansion or are you using a single server for the whole application as suggested in podcast 22

  23. wds says:

    You also use Log4Net, at least you say so in this podcast.

  24. Matthew Morgan says:

    “LOL @ people who immediately think Microsoft = FAIL.”

    There are indeed a lot of people with this mindset. I am only to an extent. When it comes to guys like Jeff and his colleagues, I’m not the least bit worried. These guys KNOW WHAT THEY ARE DOING. They are not sixth graders starting their family website. I am fully confident that they can make this work without any REAL trouble on whatever platform they choose.

    I worry about Microsoft websites that are run on Microsoft because the maintainer doesn’t know anything else exists, or if he does, he doesn’t know how to use it. He makes all his pages in Microsoft Frontpage (or worse, Microsoft Word), and each of his pages has a FP Extension hit counter that doesn’t even match the website.

    There are WAY to many websites like this on the internet, and they make Microsoft look bad.

  25. Andrew says:

    You also forgot to mention the WDM control there Jeff!

  26. Nick says:

    Matthew,

    The same can be said of just about any other website. What about all those websites being hosted that run not a single bit of MS with scripts to keep the masses happy?

    This is pure MS hate at its worst. Its pathetic really and, if at all possible, technology bigotry at its worst.

  27. Brettski says:

    You used linq for the data layer, did you have any data logic in stored procedures, or is it all within your link layer?

  28. herry says:

    Matthew,

    You’re right, there’s a lot of bad websites that are built with Microsoft technologies that make MS looks bad.
    On the other had there are also a lot of developers out there with the capabilities such as Jeff and his colleagues.

    ASP.NET MVC is a very nice and extensible framework.
    You can use NHAML as the template engine, MySQL as the database and can even run on Linux with Mono if you want to go completely free.

  29. Rich B says:

    There are just as many PHP sites that make PHP look bad as there are MS sites that make MS look bad. Nature of the business I am afraid.

  30. Luke says:

    What bug tracking software are you using?

  31. Jeff Atwood says:

    > You also use Log4Net, at least you say so in this podcast.

    We do not use Log4Net any more.

    > You also forgot to mention the WDM control there Jeff!

    Good point, added that.

    > are you using a single server for the whole application as suggested in podcast 22

    Yes, although we may buy a 2nd server to act as the database host — and from there we could get a 3rd server to split the web load. Hasn’t been necessary yet though.

  32. Nivas says:

    The link to Beyond Compare says from=codinghorror :-)

  33. Harry M says:

    What are you using for syntax highlighting?

  34. Kelly says:

    PLEASE PLEASE PLEASE state how you are producing the nicely highlighted “revisions” diff histories on questions and answers that have been edited. Is there some C# or MVC tool for that? Or is it third-party? Or did you roll your own? I must know. It’s well done and I would love to use the same tool, if possible.

  35. Hertanto Lie says:

    Did you guys stop using Log4Net because of that deadlocking problem you had? There was no way to get around that and still use Log4Net? So what do you guys use now?

  36. Jordão says:

    What do you use as a full-text search engine? SQL Server? Lucene.NET? Something else?

  37. rams says:

    Can you please elaborate on “LINQ to SQL” for data access layer? So you do have a dataaccess DLL that have LINQ statements and spits out objects for consumption up the stack?

  38. Luke says:

    Heh, I notice that you avoided my question about bug tracking, but the 23rd podcast answered it: none!

  39. Benjamin Perdomo says:

    @Jordão
    In a podcast they said they were using Lucene.NET

  40. Jeff Atwood says:

    > I notice that you avoided my question about bug tracking,

    Yep, I avoided it so well the answer is on the header of *every single Stack Overflow web page*! Man, I’m sneaky!

  41. Doekman says:

    Did you guyes change your mind, or are you using Lucene.NET (http://incubator.apache.org/lucene.net/) for indexing/searching?

  42. anil says:

    Hi,

    This seems to be pretty complex code might have implemented for this site.

    Can we can see any samples or part of code.

  43. Andrei Rinea says:

    Jeff, congratulations!

    You managed to pull this project in a short period of time using bleeding edge technologies. You have solved inherent problems (such as the concurrency problem you have blogged about – btw that is why you dumped log4net?).

    You are the man ;)

  44. Brian Vallelunga says:

    Were you guys doing any continuous integration? If so, what did you set up?

    Also, is the site still based on Preview 3 of the MVC framework or have you moved on to the newer revs?

  45. AndyB says:

    > We do not use Log4Net any more.

    Care to tell us why, I’d say the log4x is a compelling technology to make ‘universal’ logging.

    > Yes, although we may buy a 2nd server to act as the database host

    As SO is quite popular, I’d buy a 2nd server just in case the first one falls over. That’d be embarrassing :) (and quite stressful and a right hassle, he said from experience)

    I don’t think you’ll have performance problems yet, you only have 32k questions. It’d be interesting to publish web stats on the site though – users, hits, bandwidth, cpu load, memory usage etc etc etc.

  46. Frank says:

    I’d have never guessed that stackoverflow was built in ASP.NET…. I thought PHP for some reason. :-) [I'm a fan of PHP so take that as a compliment]

    Best Regards,
    Frank

  47. Ross Lin says:

    I was wondering about the VisualSVN integration with Visual Studio 2008, how good is that in comparison to VSS? Cheers!

  48. opqo says:

    do you plan to share the source code of StackOverflow?

  49. Andrew says:

    Just a question: If you *had* to build it using free and open source tools, what would you use?

  50. Aleem says:

    > This question keeps coming up a lot on Stack Overflow for some reason

    It might help to make this an SO post instead of a blog.

  51. Andrei Rinea says:

    I was forced too to abandon Log4Net after a few months of use. The internal deadlocks and other bugs forced me…

  52. bayonian says:

    Good list, Jeff :D

  53. khanhpt says:

    Nice .Net :D

  54. Sunil K. says:

    I see people abandoning log4net due to lockups and other issues, what logging framework did you end up moving to?

  55. saurabh says:

    Please correct me if I am wrong, I feel that using CMS like Drupal or perhaps wiki wud have been easier as well as faster for making a website like stackoverflow. So, why choose the ASP.net framework over them?

  56. Alex says:

    @saurabh,

    “Please correct me if I am wrong, I feel that using CMS like Drupal or perhaps wiki wud have been easier as well as faster for making a website like stackoverflow. So, why choose the ASP.net framework over them?”

    Because then it would have sucked.

  57. Hogan says:

    @Alex re @Saurabh,

    When you have a hammer, everything looks like a nail.

  58. shamun says:

    Dont get me wrong.

    1. Microsoft?
    - why not Aix or Solaris?
    2. MSSQL?
    - why not Oracle or PostgreeSQL or Dbase?

    3. ASP?
    - why not tomcat and jsp? NASA using it. god those craps.

    4. C#?
    - why not Ada/C which have pointers and preprocessing only, and nasa shuttle use it? god all those lies.

    ** Thanks to stackoverflow to cut those craps and shits.

    ** some orgranisations are making microsoft so unpopular. That when they smell in our face we are microsoft, they just burn us and try to put in ground, and never come back.

    ** I would also wish if stackoverflow/google/yahoo cut the crap of “drupal/zend/cakephp/smarty/symfony” and tell USA whitehouse never using drupal anymore, we use our own ideas/frameworks.

    God bless stackoverflow, i liked it, many thanks…

  59. MarkI says:

    “This question keeps coming up a lot on Stack Overflow for some reason: What was Stack Overflow built with?”

    Probably because non-programming folk admired the site and wanted to do something similar. I did. So when I found out about Stack Exchange today (today!), and how it is having to reinvent itself after 6 months because of lack of use… well I think ironic doesn’t even begin to cover it!

  60. Albert T. Wong says:

    Here’s another question… do you guys use any cache software (MS Velocity? Memcache?)

  61. سيارات says:

    i thought it’s PHP&MySQL :(

  62. wp_guru says:

    This site was built with wordpress. whats with all the fud geezer?

  63. sahin says:

    did you a or mapper, how did you create the object from your database , llblgenpro

  64. Alex says:

    @WP-Guru : The BLOG is made on wordpress. :)

  65. rei says:

    Not that I was expecting better, but man, people hate the fact that good things can come out of Microsoft technology.

  66. jinga says:

    What about caching? Does SO use Redis for caching?

  67. baidu says:

    What about caching? Does SO use Redis for caching?

  68. Benny says:

    You forgot the core componment;

    Jon Skeet.

  69. Kfir says:

    How many developers worked on the original product?

  70. Salman Abbas says:

    Awww this made me sad :(

  71. p3ntium says:

    I love this stack.
    Feels good to know some people are really thinking.

  72. pandora jewellery outlet says:

    Glad to enjoy your good blog.I have read your blog.I like it very much.I would be your Loyal readers.Expecting your next blog.If u do not mind ,u can go to our website ,and communciate with each other.Many thanks.

    caiyifang/comment201110

Leave a Reply