Hacker News new | past | comments | ask | show | jobs | submit login
Building a social network from scratch on a whiteboard (xeiaso.net)
20 points by mfrw 5 months ago | hide | past | favorite | 11 comments



I've always wondered why nobody tried to recreate reddit. It's simple coding and scaling shouldn't be hard.


I tried it recently as a programming exercise, calling it MVRA (minimal viable Reddit alternative). I originally thought it would took afternoon or at most weekend. It took me 2 weeks and while the key features were done it still wasn't nowhere near finished.

The problem IMHO is that walled gardens are a thing because it is really tedious to maintain forums and people eventually give up. So in order for MVRA to succeed it has to be bulletproof and unbreakable. It has to be able to run for decade without any intervention. This means that you have to write everything yourself. If you use library for feature X or some framework, in 2-3 years your code will be so behind that you will either have to fix thousands of lines of someone else's code or do major rewrite to replace that feature with other library. That's why I think that you have to implement everything with zero dependency. Every feature has to be absolutely minimalistic to keep the complexity minimal, but still there are lot of features in MVRA that you need to implement otherwise it will not be usable in real world situations.

Goals:

- it has to be truly minimalistic, no fancy features, no extra stuff nobody needs that always breaks, the site must be unbreakable

- it must be able to run years without proper maintenance

- once done, there will be no further development, the page will be done and complete! Constant adding of features makes it brittle and wears project maintainers

- all code is dependency, if you add 3000 LOC library to do X you will have to maintain it

There are only 3 truly essential features:

- nested comments (to maintain meaningful conversation, this makes PHPBB non-viable alternative)

- collapsible comments (to allow you skip off-topic but non-spam comments)

- users can created subreddits (to protect subs from off-topic posts)

I've skipped obvious things like image uploading and comment editing and moderation tools. And then there are hundreds of tiny little features you don't think about until you start implementing MVRA. They turn afternoon project to 2+ weeks project. Go ahead, try it, it's real fun and good programming exercise.


At their scale you'll run into a few hard things around handling large spikes of load to a single post and related set of comments/votes. But those are not impossible problems to solve.

The problem is that you don't have any users/communities for your Reddit alternative.


The problem is if you actually succeed you'll have big governments hands around your throat


And a big challenge to create all kinds of anti-abuse features that normal users never see. But not having them will quickly kill your site from all kinds of spam and voting fraud.


I think plenty of people have. But it's not the coding or scaling that is the hard part of launching a new social media platform.


Agreed. Not dismissing scaling social media as a trivial technical issue, but the real challenge with building a social media platform is building out the community that cause the tech scaling problems.


Many people have tried and succeeded at creating some of the code that would create a reddit/facebook/digg/slashdot.

First do not have a handle on the complexity of the things that make it hard, and second they have no users.

Serving a "simple" interactive website often involves all sorts of managing "simple" problems in unexpected ways at scale.


I tried making a reddit clone focused on making clips of youtube videos (sdwr.ca)

The lack of users is the biggest problem, but I was surprised by how the technical concerns started piling up.


Lemmy is decently active now a days.


The more I work in micorservice environments the more I start to feel like the ruby on rails style monolith with async work queued up into scalable jobs is just way less annoying to deal with.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: