Hacker News new | ask | show | jobs
by latk 2147 days ago
When SO took off they thought they could replicate the success with other sites. This lead to the original trilogy (SO, SuperUser, ServerFault) and the Area51 site to propose new sites, of which many betas were started. Turns out few beta sites reached the engagement criteria to graduate to a full site, and this creeping scale with hundreds of site led to substantial technical debt. Each site was more or less a fork of the codebase, and required a separate DB instance.

The mistake was to treat each site as a separate community and expect it to eventually grow to an SO-level success. In contrast, Reddit's subreddit approach is much more scaleable and can tolerate niche communities. Reddit is strong not because of any single community, but because of the combination of communities to grab inbound traffic and keep users engaged. SO partially missed out on this.

1 comments

> Each site was more or less a fork of the codebase, and required a separate DB instance.

I don't believe this is true. At least as of 2016, the various sites were on a shared codebase [0], and there were two SQL Server clusters total [1], for all the various sites, chat, devops, other systems, etc.

[0]: https://nickcraver.com/blog/2016/02/17/stack-overflow-the-ar...

[1]: https://nickcraver.com/blog/2016/02/17/stack-overflow-the-ar...

Yes, what you say is more precise than what I said. They did a lot of fixing and by now nearly all sites use the same codebase (incl frontend), apparently with feature toggles for some sites (e.g. Stackapps or Meta have unique mechanics but run on the same software). The only surviving forks are probably Area51 and their Enterprise product. Previously, frontend/layout had diverged though, which prevented rapid rollout of new UI features[1]. One of the perks of a graduated site used to be a custom design (not always just CSS changes).

Sites don't need separate database servers but separate database schemas, which is also why migrations between sites are still quite broken. Many processes around launching a new site appear to be very manual.

[1]: https://meta.stackexchange.com/q/307862