The Wayback Machine - https://web.archive.org/web/20150313042524/http://blog.stackoverflow.com:80/2008/09/what-was-stack-overflow-built-with/
site title

What Was Stack Overflow Built With?

09-21-08 by . 81 comments

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.

Filed under server

81 Comments

You clearly left out the most important fact:

What flavor soda was required to build Stack Overflow?

:)

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

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.

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

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

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

Jared Sep 21 2008

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

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

Sergey Sep 21 2008

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

shawn Sep 21 2008

>sergey asp.net MVC

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

Henry Sep 21 2008

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).

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.

Benjamin Perdomo Sep 21 2008

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.

test o'tester Sep 21 2008

.net indeed

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

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

scott Sep 21 2008

@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.

And some PHP/wordpress for the blog…

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.

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

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

Matthew Morgan Sep 22 2008

“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.

You also forgot to mention the WDM control there Jeff!

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.

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

herry Sep 22 2008

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.

Rich B Sep 22 2008

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.

What bug tracking software are you using?

> 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.

Nivas Sep 23 2008

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

What are you using for syntax highlighting?

Kelly Sep 24 2008

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.

Hertanto Lie Sep 24 2008

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?

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

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?

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

Benjamin Perdomo Sep 29 2008

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

> 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!

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

Hi,

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

Can we can see any samples or part of code.

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 ;)

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?

> 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.

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

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

do you plan to share the source code of StackOverflow?

Andrew Dec 26 2008

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

> 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.

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

bayonian Mar 18 2009

Good list, Jeff :D

Nice .Net :D

Sunil K. Aug 22 2009

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

saurabh Nov 18 2009

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?

Alex Jan 8 2010

@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.

Hogan Jan 28 2010

@Alex re @Saurabh,

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

shamun Mar 5 2010

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…

MarkI Apr 13 2010

“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!

Albert T. Wong Aug 24 2010

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

i thought it’s PHP&MySQL :(

wp_guru Oct 19 2010

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

sahin Nov 10 2010

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

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

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

jinga Jan 20 2011

What about caching? Does SO use Redis for caching?

What about caching? Does SO use Redis for caching?

You forgot the core componment;

Jon Skeet.

How many developers worked on the original product?

Salman Abbas May 21 2011

Awww this made me sad :(

p3ntium May 29 2011

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

Yves Rausch Apr 14 2012

On my daily work I googled for technolgy questions. Meanwhile I just search in SO :) Continue your good work, I love the platforms.

What did you use for question editor ? I mean which WYSIWYG editor ? Also what code highlighter did you use ? Or did you guys write one of your own.

And how do you guys handle static pages?

Vlada Jun 3 2012

Does stackoverflow use asp membership API?

+1: Does stackoverflow use asp membership API?

I’d be really interested to hear about this too – it’s nice and flexible, whatever it is (not something I usually associate with the standard membership API)!

Interested to know : does stackoverflow using membership API?

and which caching method currently using…

John Billingly Sep 27 2012

Hi, does Stackoverflow use Entity Framework now?

this article was written in 2008 i think the core is now changed .. right?

Kamran Dec 11 2012

My Question is same like prijm

yantaq Dec 21 2012

I love this stack and stackoverflow
Keep up the good job, guy:)

You regarded the tools and programming languages that you used to develop Stackoverflow. Well, Do you used it because they are the most suitable stuff to develop it or just because it’s the most tools that you are able to implement with?