4 ms·
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 week
by dvh 2y ago
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.