When Twitter got at the wrong end if the shitstorm barrel there were countless Twitter clones popping up on HN. I may have missed them, but where are the twitter clones?
I coded an upvoting platform in the late '00s. I mean, these things are very simple to build, and if you actually put some thought into sharding they're not that hard to scale. (No offense Dan but I have no clue what route HN has taken and I'm almost terrified to know).
The simple problem is what it's always been: Good moderation and building a community. See me, I was literally just bitching about being kicked off of WSB. Or the many times I've been banned or limited from HN. And I consider myself a mildly obstreperous arguer, sometimes a bit of a jackass, but certainly not the worst.
The answer to why there are no Reddit clones is simply that Reddit owns the market for all forums in the known universe which are not specialty forums, which usually run on PHPBB or some other ancient janky software and charge $5/mo for subscription to keep their servers up. A single ad on Reddit reaches millions. It's simply the economy of scale.
[edit]
This does get into the more interesting question of why people keep building startups without asking themselves "hey, what's our moat to prevent someone else from..."
The "moat" for Reddit is only volume. Period. Same with all socials that have existed more or less since the collapse of Friendster, Myspace, LnC and Suicide Girls [edit edit: I guess suicide girls still exists. That makes me feel even older].
What kind of sharding strategy would be a good one for a reddit-like site?
Would you shard based on post-id?
Would you duplicate/denormalize the user comments and store them along-side users also, to make the "show all comments for a particular user" operation easier?
I'd probably make user post lists lower on the priority for selects either way. Date range is clearly how you want to partition if you can, as long as you can table up points without hitting the whole damn history for every point change. For something with lots of subs I'd shard by sub / related subs and then partition by date range, subpartition by user id range (probably). That would make user score accretion very slow but most immediate views within a sub or a thread fast. But it would depend on the patterns and seeing what queries took the longest.
Triggers to user_points on some monolith table might be doable.
Also at that point you can run jobs to build user post tables and point scores in a lazy way. Placing immediate post writes and hot thread reads as first priority makes sense if you do have to trade off performance somewhere.
7 comments
[ 396 ms ] story [ 280 ms ] threadThe simple problem is what it's always been: Good moderation and building a community. See me, I was literally just bitching about being kicked off of WSB. Or the many times I've been banned or limited from HN. And I consider myself a mildly obstreperous arguer, sometimes a bit of a jackass, but certainly not the worst.
The answer to why there are no Reddit clones is simply that Reddit owns the market for all forums in the known universe which are not specialty forums, which usually run on PHPBB or some other ancient janky software and charge $5/mo for subscription to keep their servers up. A single ad on Reddit reaches millions. It's simply the economy of scale.
[edit] This does get into the more interesting question of why people keep building startups without asking themselves "hey, what's our moat to prevent someone else from..."
The "moat" for Reddit is only volume. Period. Same with all socials that have existed more or less since the collapse of Friendster, Myspace, LnC and Suicide Girls [edit edit: I guess suicide girls still exists. That makes me feel even older].
Here's a non-functioning grab of it... you can kinda get a sense of how juvenile and stupid it was (though fun).
https://web.archive.org/web/20020419114342/http://www.lipsti...
Would you shard based on post-id?
Would you duplicate/denormalize the user comments and store them along-side users also, to make the "show all comments for a particular user" operation easier?
Triggers to user_points on some monolith table might be doable.
Also at that point you can run jobs to build user post tables and point scores in a lazy way. Placing immediate post writes and hot thread reads as first priority makes sense if you do have to trade off performance somewhere.
Demo: Fully P2P and open source Reddit alternative (plebbit-test.netlify.app)
313 points by estebanabaroa 3 days ago | 239 comments
https://news.ycombinator.com/item?id=23664067
Lemmy, an open-source federated Reddit alternative, gets funding for development (lemmy.ml)
944 points by jasonbourne1901 on June 27, 2020 | 657 comments