Dubbed as the “frontpage of the internet, Reddit is one of the world’s most popular social platforms with over 430 million active users. Today, Reddit scores 19th in the most visited platform in the world, with users visiting about 150 million pages every day. The simplest way to describe Reddit is if you think of it as a combination of a social media platform, a retro forum, and a news site.
Reddit users – or Redditors – create channels, called subreddits where they post different content. This can be anything from a link to a meme or a video, questions, ideas, and so on. From there, other “Redditors”, vote, discuss, and even award posts they find relevant, clever, or simply entertaining. So, like with other social platforms, Reddit is a community-driven mechanism based on good content and popularity. But, before we go more into how Reddit works, let’s first remember how Reddit started.
How did Reddit start
Most companies we discuss are the result of a brilliant idea at the perfect time. Think Google, Apple, Windows. They are all the brainchildren of brilliant people, who saw a need in the market and took a stand. Reddit is a bit different.
In 2005, two university students, Steve Huffman, and Alexis Ohanian wanted to build an app that would allow users to order sandwiches online. So, they decided that their best chance of success was getting Y Combinator to back them. Said and done, Steve and Alexis meet with Y Combinator partner, Dr. Paul Graham. But, Paul turned them down. Remember, this is 2005, and apps are not still a thing. Nevertheless, Paul liked them and didn’t want to give up on them. So instead, he suggested they build a bulletin board-like platform for news.
Paul’s idea intrigued the two young entrepreneurs, and so Reddit (which is a play on the words “Read It”) became a reality. The new platform gained so much traction that only 16 months, in October 2006, it was bought by Condé Nast. Steve and Alexei continued working with Reddit until 2009 as part of their contract but then went their separate ways. In 2015 however, Reddit was in trouble and Steve Huffman was appointed CEO and Alexis retakes his seat as executive chairman.
Through the years
Initially, Reddit was just a user-curated list of links with no subreddits. Also, instead of today’s available response actions, like up and downvotes, awards, comments, etc, back then users had only two buttons: interesting or uninteresting. Yeah, back then things were just more simple! Anyway, users loved the community idea around Reddit from the start and they grew organically and fast.
As Reddit grew, the need for subreddits became apparent. But remember this is the internet, we’re talking about. So, surprise surprise, the first-ever subreddit was the /r/NSFW (not safe for work), which removed the nudity and racy posts from the home page. Next, Reddit admins created /r/science and /r/programming, two topics that to this day rank as the most popular on the platform. By 2008, Redditors were able to create their own subreddits, so the community had complete control over the content on Reddit.
A warrior for internet rights
As a community-driven company, Reddit is also a strong activist of internet freedom, including freedom to information and freedom of speech. In 2012, it took part in the protest against the Stop Online Piracy Act (SOPA), and the massive censorship it entailed. The Electronic Frontier Foundation who organized the protest stated that Reddit was one of the most impactful companies joining the synchronized 12-hour long blackout. In May the same year, Reddit joined the Interned Defence League.
Still, probably one of the most progressive moves towards anonymity and internet privacy came in February 2013. On Valentine’s day, Reddit started accepting Bitcoin for their Reddit Gold services, in a partnership with Coinbase. Unfortunately, this service is not available anymore.
Today, Reddit is a free-to-use platform, where anyone can create a user and join the community. In addition, Reddit offers Reddit premium which costs $5.99/month and removes all ads and gives users 700 coins every month.
The coins, on the other hand, are used when Redditors award content they like. Both services aim at supporting Reddit as well as offering a digital incentive for content creators so they maintain quality and originality in their media.
Tech behind Reddit
Reddit’s infrastructure is an interconnected, beautiful beast. The platform’s core – known as r2 – is based on Python, and other parts of the platform consist of NodeJS working together with the separate API client. On top of this, Reddit uses a combination of many frameworks and libraries, each with its own purpose.
UnderscoreJS for example enhances the frontend development process, while tightly connecting with jQuery and BackboneJS. BackboneJS, on the other hand, connects with Reddit’s API via a RESTful JSON interface. This particular framework provides different key-value binding models, numerous function collections, and event-handling declarative views. Finally, CreateJS works with HTML5 and brings interactive web content into the mix.
Storage, performance, and security
Reddit’s database and maintenance systems are just as complex. For one, the platform uses a combination of traditional tools such as PostgreSQL and Apache Cassandra. On top of this, they also use Google’s Firebase and several Amazon Web Services (AWS) like Amazon S3 for cloud storage, Amazon EC2 for secure cloud computing, and Amazon Route 53 for user requests management.
For both security and better performance, Reddit uses tools like Cloudflare, DigiCert, and Akamai Intelligent Platform. While Cloudflare deals with DNS sided security and performance enhancements, DigiCert takes care of the SSL certificates. Akamai services are what they call a shield for your every need. It protects users, data, and data centers, the sites themselves, and basically everything else.
Finally, bug tracking and reporting are done via Atlassian JIRA and BugHerd. BugHerd creates a visual report for faster tracking and fixing, while JIRA helps teams prioritize and manage their workflow for overall better maintenance. As we said, each tool has its own unique role. And let’s not forget Apache Zookeeper, which keeps an eye on servers and their well being.
Updating and improving Reddit
Reddit does everything with user experience in mind. And we mean everything. They even went ahead and created old.reddit.com which maintains the old designs for users who don’t like the new Reddit or are simply missing the old style. The updates and posts are all the same, the only difference is strictly the UI.
Nevertheless, Reddit developers are working tirelessly on migrating towards microservices and cloud-based services. And although sometimes things will not work as intended, in the long run, everyone knows this is the right way to go.
An example of lessons learned, three years ago Reddit developers were migrating Zookeeper on the Amazon Cloud when the platform stopped working. Reddit was down for an hour and a half, then it had another hour and a half of slow response times. Reddit would no have it, so they created a three-step plan for future risky migrations such as this one, so this situation doesn’t occur in the future.
Another example of a great UX mindset is Reddit’s Ad Serving Platform. Initially, Reddit was using a third-party solution, which meant they had no control over the ads and how they were shown to the public. As a response, Reddit decided to take control and build their own microservice. We understand that most times it’s simpler and more cost-efficient to use external microservices. But, Reddit solved two major issues with one service. One, they now had full control over ads, two, if the microservice breaks, their developers have immediate access to fix it.
Wrapping things up
Reddit grew from a small and simple bulletin-board-like platform to the giant social platform we now call the frontpage of the internet. However, through their journey, they taught us two important lessons. Lesson one, never lose sight of what is important, the community. Everything you build and everything you do should be for and about your users and their happiness.
Lesson two, even with an army of developers behind your platform, things can still go wrong. So don’t be afraid to take risks, but always be transparent. Keep your users informed and let them know what happened. They will respect you more for that.