InsightsHow Was IT Developed

How was Medium Developed?

NodeJSNginxMediumMedium frontendMedium technologyMedium HistoryHAProxyAnsibleSQSAmazon AuroraDynamoDBwho invented mediumAmazon solutionAmazon Cloud solutionMedium and AmazonMedium vs WordPressMedium mobile appsAmazon redshiftApache SparkNeo4jSendgridMockitoGuavaClosure compilersClosure templatesClosure frameworksSinge Page Applications
Updated October 23, 2020 Lucia Sumichrastova

Publishing has never been easier.

 

This statement is probably best proven by the Medium, a universally available publishing platform for articles that allows content creators to monetize their content, without ads.  Basically, anyone can use the Medium publishing services, and authors receive royalties for their articles.

 

Also, Medium is a prime example of how the Internet has changed various industries. Just like Google’s products replaced traditional services like mail, maps, paper, and even traditional dictionaries. Or how Wikipedia replaces printed encyclopedias. Digitization is everywhere, Software is Feeding the World, and today the majority of users – especially younger generations – only read news online. This created a challenge for small publishers as they fought over digital subscribers in an industry where competition is fierce.

 

However, since Medium was created, it had the ambition to change this. Their vision is a platform where anyone can be a publisher – from professional journalists to ordinary people. But more importantly, authors are valued and rewarded for their content, without any adds that scare readers away.

 

In today’s article, we will take a deep dive into what the Medium publishing platform is, and how it became so popular over the years. Lastly, we will have a peek under their hood and see how Medium was developed. 

 

What is the Medium publishing platform?

Medium is an online self-publishing platform open for all, private, or public writers, hosting a wide variety of stories, visions, ideas, and perspectives. The Medium publishing platform is the perfect example of journalism online, combining personal and professional publications. Also, Medium is a great place to share your story, especially since Medium is extremely user-friendly and easy to use. Almost anyone can produce a great looking story within minutes.

 

The name “Medium” is a brand

Medium was founded in 2012 by the American programmer and internet entrepreneur Evan Williams. Interestingly enough, Williams is the one who also created the social media giant Twitter back in 2006. Williams wanted to encourage the users to create posts longer than 140 characters. In his own words, “there’s been less progress toward raising the quality of what’s produced”. And the Medium publishing platform was his solution to this rising issue.

 

Evan Williams Founder of Medium
Source: The Wall Street Journal

 

When Medium was launched in August 2012, it already had a full staff working on it and Williams had the position of a Storyteller. At the time, Williams stated the platform was still small but he felt optimistic about it and their whole vision of providing the easiest journey for users and their publications.  

 

Medium over the years

In 2013 however, Medium was criticized by some of the writers, as they have felt confused about what value the platform actually provides. In simple terms, only a year after its launch, several controversial stories started making rounds within social media, and all were hosted on Medium. While some of these stories were inspirational and others were questionable – to say the least – the question still stood. What value is Medium bringing, if anyone and everyone can spew an article without any limitations?

 

In response, Medium officially expressed that the website is a publishing platform empowering authors. The content and additional edits are the author’s responsibility. Simply put, each article is a person’s – expert journalists or not – story, and while some might find it controversial, they still have freedom of speech.

 

Medium official twitter

 

Nevertheless, this story did not seem to phase Medium’s growth, as the same year, they acquired Matter an online publication platform that specializes in technology, environment, and medicine. And a year later, Medium incorporated the music publication, Cuepoint, which focused on essay publications from artists, newest trends, and new releases.

 

However, Medium’s democratic approach has brought a few bans over the years. In 2015, the Malaysian government banned Medium after running a story on an alleged corruption scandal involving Prime Minister Najib Razak. A year later, Medium was been banned in China Mainland, after a publication connected to the Panama Papers leaks. This was followed by the Egyptian government baning Medium, along with 60 other websites in 2017.   

 

Bans or not, by 2016, Medium had already 60 million readers per month and reportedly published 7.5 million articles. Compared to the previous year, their number of readers increased by 140 percent, and Medium’s value in 2017 was estimated at $ 600 million.

 

Medium also faced some actual problems during 2017, that forced the company to close its branches in New York and Washington and lay off 50 employees. This prompted Medium to rethink their business strategy and come up with a paid membership where users would pay $5 a month for an enhanced Medium experience. However, the platform is still free, and the membership is strictly optional.

 

In 2020, Medium became the go-to information source around the COVID-19 pandemic, after they created a Coronavirus Blog. The blog is being updated every day so Medium users have easy access to the latest information at all times.

 

Medium Coronavirus blog
Source: Medium

 

Aside from COVID-19, Medium also militates for is the fight against anti-Black racism, for which they launched Momentum. This section is meant to give a voice to those affected by racial discrimination, police brutality, and inequality of social rights. 

 

How does Medium work?

While most blogging tools like WordPress empower a brand, the Medium publishing platform focuses on empowering the person. In simple terms, traditional content management systems work on user hierarchy, where one brand can have several authors. But many times, this limits the freedom of speech one author has while also taking away their individuality. In comparison, Medium uses the author’s name as the brand, therefore enabling each writer to use their own voice and their own image.

 

Medium publishing
Source: Medium

 

Registering with Medium is free for both users and readers. When a user registers, they have the options of using their Google account, their Facebook account, or their email. Each new user has to set up their account, which includes checking some of their interests from a given list. This helps Medium algorithms personalize each user’s experience and provide only content relevant for them.

 

In Medium’s eyes, readers and authors are interchangeable – anyone can be a reader or a writer at any point. So, to add an article on Medium, a user only has to click on their user icon and New Story to access the Media Editorial Board, then simply start writing. Once the story is ready for publishing, authors also have the option of improving their SEO with keywords, add a cover image, and so on. Or, they can share the story on social media for a wider reach.

 

How was Medium developed

 

Article monetization depends on three factors – the number of views, the length of the article, and the number of claps. Basically, the system is meant as an incentive for authors to create better, more informative content. So, the more relevant and insightful an article is, the more popular it becomes, and the more it earns.

 

Creating the user is free, as well as writing, reading, and interacting with authors and articles via claps, or responses. However, Medium also offers a membership for $5/month or $50/year that comes with unlimited, ad-free access to content. On top of that, premium members also get the Medium monthly magazine, audio versions of popular articles, and daily curated content.

 

How Medium helps media to stay objective

It is imperative for the media to stay objective and maintain an impartial opinion. But oftentimes we see news providers sway one way or the other, losing focus of that neutrality readers expect from them. For this, Medium has a strong position within media as it publishes different opinions, that allow readers to create their own newsroom and their own opinions. But more importantly, Medium enables individuals, like journalists, public or private people to tell their story, in. their own words.

 

Jeff Bezos Medium Post

 

An excellent example of this is an article titled No, thank you, Mr. Pecker, published by Jeff Bezos – founder and CEO of Amazon. Long story short, the article reveals how Mr. Bezos was more or less blackmailed because of his ownership of the Washington Post by a “rival” tabloid, the National Enquirer. Details aside, Mr. Bezos chose Medium because of its neutrality and impartial nature. Though Medium, Jeff Bezos, and other authors in a similar situation have their own voice when writing an article without political or any other kind of external pressures. It’s their story, their words.

 

Medium as an alternative to traditional media

Medium is a popular outlet for both private people, as well as public ones like Elon Musk, Wikipedia founder Jimmy Wales, inventor of the Internet Tim Benders Lee, and others. However, contrary to Medium’s global ambitions only users in the US, Western Europe, and some countries receive remuneration for their publications.

 

This is partly because while Medium allows users to write in all languages their desktop interface only supports English. However, the mobile interface on the Medium app for Android and iOS is available in Brazilian Portuguese, Portuguese, Latin American Spanish, Spanish, French, German, Catalan, Dutch, Italian, and Turkish.

 

In addition, it is unknown how Medium’s financial model will work seeing that its main revenue-stream comes from subscribers. The chances of Medium facing the same issues as back in 2017 are not a slim as one might think. However, so far, Medium has done a tremendous job of providing a platform focused on democracy, integrity, freedom of speech, and objectivity. This, combined with the fact that the platform ad-free and customizable based on each users’ interest has gain Medium a lot of success.

 

That said, while Medium is not replacing traditional blogging and established media companies, they clearly represent a powerful competitor.

 

How was Medium developed?

As technology progresses, so are platforms like Medium and their technology stacks. However, Medium’s initial technology stack was from the very beginning progressive and scalable. According to Dan Pupuis, former Head of Engineering at Medium, from the start, Medium’s app servers were written in Node.js, and they used DynamoDB for data storage and Amazon EC2 for cloud computing.

 

Even before Medium was first launched, the team focused on performance, speed and scalability. So, for queue processing, they used an SQS server, but the hard work of image processing was done by a different node server which was using GraphicMagick. They also heavily relied on Amazon services with SES for email, S3 for static assets, and CloudFront for their Content Delivery Network (CDN). As for reverse proxy, they used the very popular NGINX tool.

 

Monitoring the website was done using Datadog, while PagerDuty was used for alerting. And since the UI needed to be simple and effective, the base of the platform was built on the text editor TinyMCE. As for development simplicity, they used the JavaScript compiler Closure Compiler by Google, which compiles JavaScript into a more compact, high-performance code. In simple words, the compiler removes any typos, dead codes, and rewrites and minimizes what is left so the website runs quickly. This, of course, was used in combination with the Closure library, which is designed for building complex and scalable web apps.

 

Medium’s current technology stack

Today, Medium relies on Amazon’s Virtual Private Cloud for its production environment while system management is done via Ansible. However, nor surprisingly, Medium’s architecture is built with services in mind. Simply put, they use a plethora of microservices to do specific work, and when new functionality is needed, a new service is created, tested, and deployed. For some of these auxiliary services they also turned to Go, a programming language built also by Google for easy development and deployment.

 

This service-oriented development strategy is becoming more and more popular, as it is faster, more secure, and provides a better user experience. Building one service at a time allows developers to focus on one tas and perfect it before deploying, resulting in better performance. At the same time, if a microservice stops for any reason at all, the rest of the application goes on as normal. It’s just that one feature that your users lose access to, so their user experience is bearly affected.

 

Many of their servers are still based on Node, however, over the years Medium has encountered some performance issues. In response, they decided to direct crucial endpoints towards specific instances, while running several instances per machine. This isolates each endpoint and ensures a better result. On top of that, Medium has also started using Google’s V8 Runtime for more in-depth insights. 

 

Static assets are now managed using CloudFlare, but Medium still uses CloudFront as an emergency backup, as well as Fastly. For their proxy solution, they also added HAProxy to the list along with Nginx, and for debugging, the team primarily uses the ELK stack – ElasticsearchLogstashKibana – in combination with the aforementioned DataDog and PagerDuty.

 

Medium database solutions

In spite of some performance issues, Medium is still using DynamoDB as the primary database, in front of which they applied Redis for cash clusters. But, they are slowly moving towards Amazon’s Aurora, an SQL database replacement solution. For entities relations such as people, posts, and tags management which connects with the Recommends function, they use Neo4J.

Medium data management platforms

Medium is a prime example of how important data management and good architecture are from the start. Since they launched, Medium focused on collecting data and have invested heavily in analytics. Currently, they use Amazon’s Redshift for their data warehouse into which they constantly import information from DynamoDB such as users and posts as well as event logs, like viewed posts from S3. And to help with data going in and out of Redshift they use Apache Spark along with traditional SQL queries.

 

Medium also built its own internal tool for managing job scheduling, data dependencies, and monitoring, which is called Conduit. And to keep everything in sync – the distributed system in sync, including mobile apps, web service, and data warehouse – they use Protocol Buffers.

 

Medium image managements and text shots

Medium’s image servers are now written in Go and use GroupCache for serving on-demand processed images, reduced duplicated work, and design flexibility. For the TextShots feature, Medium uses Go-based servers with a PhantomJS interface for the rendering process.

 

Medium custom domains

Custom domains are a service provided by Medium that basically turns the platform into a CMS. So instead of a link like medium.com/@example, users have their own brand there. The setup itself takes a bit of manual work, but Medium automated a large part of the process. Certifications and publication linking are handled by HAProxy dedicated servers.

Medium Frontend technology

For Frontend, Medium continues to rely on Closure, but now they have their own Single Page Application (SPA) framework based on the technology. However, they are still using Closure templates for rendering and the Closure compilers for code minifying and module splitting.

Medium iOS and Android mobile apps

Both the iOS and Android Medium mobile apps are native apps. However, the iOS version is built using inhouse technologies, such as NSURLSession for requests and Mantle for breaking JSON into different models. They also use their own cache layer on top of NSKeyedArchiver and UICollectionView for the post view. Manual testing is done by Medium employees, but Meidum also uses testing tools like XCTest and OCMock.

 

The Android version is a bit more basic when talking about technology, but Medium does use guava as an extension of Java. Aside from that, the specific problem solving relies on 3rd party tools. Unit testing is done with mockito and Robolectric while manual testing is done by Medium’s employees.

 

Other technologies in the Medium stack

Like many other platforms of its size, Medium’s technology stack is vast and complex. Aside from the tools mentioned so far, they also use a plethora of others, like Algolia iterating search-related functionality and SendGrid for email services. For notifications, they use Urban Airship while queue processing is still managed by SQS. Also, Medium uses PubSubHubbub and Superfeedr for RSS and Bloomd for bloom filters.

 

The development team at Medium uses Jenkins for continuous integration, while their build system uses Make, and – for more recent projects – Pants. For unit tests and HTTP level functional tests, Medium collaborated with the team behind Box and used Cluster Runner integrated with GitHub for fasted test distribution.

 

Conclusion

Medium is basically a cross between a blogging service and a social network. So what will you gain after joining Medium? Minimalism. Familiar icons, no distracting elements. Just an easy, fast, comfortable publishing process without any time waste. On top of that, you get a democratic and empowering system where your voice is heard, and every voice matters.

 

 

However, a platform like that cannot be created overnight and it requires a lot of technology and development, extensive planning, and a good strategy from the start. And Medium has had all of this from the start – an amazing architecture, data-driven thinking, and a scalable system.

 

What’s next for Medium, only time can tell. For more articles like this, visit our How Was it Developed section.

 






Leave a Reply

Your email address will not be published. Required fields are marked *