In the last couple weeks, there's been a lot of backlash against Medium in response to the infamous "Paywall". I started seeing a lot of tweets similar to this one:

I'm sure this blog post is excellent, but @Medium's paywall is preventing me from reading it. Proliferating paywalls on blog articles is an unpleasant future. It feels like inviting academic paywalls back into the tech world. Let's start avoiding paywalled services like @Medium https://t.co/rVW4YSrFZp — Bharath Ramsundar (@rbhar90) May 18, 2019

I have two major problems with this attitude.

Reason 1: Authors Put Up the Paywall, Not Medium

If you've run into paywalled content, it means that the author of that specific piece of content opted-in to the paywall. By default, the paywall is disabled. Once you've written a post you're presented with the below dialogue.

Even if the author decides to opt-in for the paywall they can still obtain a paywall-less link to distribute at their discretion.

Reason 2: There are much better reasons to dislike Medium

Slimy Business Tactics

FreeCodeCamp is a charity that provides free resources for developers. Their mission statement says it best,

Our mission: to help people learn to code for free. We accomplish this by creating thousands of videos, articles, and interactive coding lessons - all freely available to the public. We also have thousands of freeCodeCamp study groups around the world.

Recently, an email written by FreeCodeCamp founder, was leaked on twitter. The email explains how Medium strong-armed the non-profit, eventually causing them to leave the platform. Specifically he says,

freeCodeCamp is the biggest publication on Medium. Our open source community sends Medium about 5% of their total traffic. But over the past year, Medium has become more aggressive toward us. They have pressured us to put our articles behind their paywalls. We refused. So they tried to buy us (Which makes no sense. We're a public charity.). We refused. Then they started threatening us with a lawyer.

Assuming what they are saying is true, Medium quite literally extorted a charity.

It's not just us. They are doing this to a lot of publications. And a lot of high profile people from the developer community are leaving Medium as a result.

I would love to hear others speak out as FreeCodeCamp inadvertently did. Here's the email in it's entirety, there are a lot more goodies.

Terrible User Experience

Let's start with something simple, like syntax highlighting.

That was quick.

This is the official Medium documentation! How they can seriously suggest going to a 3rd party for something simple like syntax highlighting, is beyond me.

Here's another great example. Medium has a product that is supposed to make it easy to send Newsletters. But as Vico Biscotti says in his article

I could have added a picture or a better logo, but, honestly, my will slipped out of my mind as soon as I saw that the best I could do was adding a full-width picture. Nothing else. You cannot even add a separator, except the default in the footer, or embed a story with its picture, subtitle, and author. Nothing. The nothingness made newsletter. Clearly, nobody at Medium has worked on that tool in years.

Other critical issues with the editing experience include:

No alt text for images, this is unacceptable as it hampers accessibility for the visually impaired

Videos are not supported directly, instead you are required to rely on an external service for hosting videos, even short ones.

No native tables or grids. That's a feature useful outside of the tech space too, which really makes me scratch my head about the decision making at Medium.

No visualization or data plotting. This missing feature essentially makes data science and Medium mutually exclusive.

Medium doesn't limit bad UX to the editor. For the last year or two, more and more crap has snuck its way into the reading experience too.

The user experience is so awful, that someone had to make the browser plugin "Make Medium Readable again" just to make the experience bearable again.

Limited Control of YOUR Content

Medium does not surface mechanisms that let you control YOUR content. Take setting a canonical URL as an example. It appears that Medium does not provide a way to set a canonical URL via the menu on your post (pictured below).

I assumed I was just missing something. A quick Google search resulted in a promising page.

Medium’s official tools for cross-posting (including the Migration tool, Import tool, and Wordpress plugin) add the source it is importing from as the canonical link automatically.

The first option suggested, the "Migration tool", has been deprecated. The second option, "Import tool" doesn't work for my blog. For those wondering why the import tool doesn't work for my blog, here's what Medium has to say.

As you can tell, incredibly insightful. The last suggestion, "Wordpress plugin" is obviously a non-option, as my blog does not use Wordpress or a CMS at all.

Most would have given up at this point, but I'm a bit of masochist. After some more googling, I learn that Medium has a publishing API.

Medium offers a write-only API free of charge to developers, to enable your applications' users to participate in the Medium network. Medium uses OAuth2 for authentication, through which you can seamlessly publish to your users’ Medium profiles. The API supports Markdown and HTML content formats, canonical URLs for cross-posting, and the full range of licenses available on Medium.

Sounds great right? As I start reading some articles about the publishing API, they keep referring to a "clientID" which is allegedly on my Medium profile. It was not. After some serious frustration, I broke down and went to the Medium API on Github. After a short scroll, I find the Browser-based authentication section

First you must request access by emailing yourfriends@medium.com. Then we will then grant you access to a clientId and a clientSecret on your settings page with which you may access Medium’s API. Each integration should have its own clientId and clientSecret. The clientSecret should be treated like a password and stored securely.

Good thing The Medium API is now open to everyone

Somehow, every other resource and doc they have, fails to mention this incredibly manual step. But I'm still not defeated, I assumed the email is controlled by a bot which validates your identity on Medium and automatically replies.

Over a day later, I verified that it's most likely just some guy named Jonas.

I'm not the only one who has had issues with this aspect of Medium. I highly recommend this great article about leaving Medium.

For those wondering what this looks like done right, here is what the entire process looks like when using dev.to.

What Can We Do?

Creating your own blog is easier than ever. If it's been a while since you last made a blog, I highly recommend checking out static site generators such as Gatsby, Hugo and Gridsome. In conjunction with something like Netlify, maintaining a blog can be a breeze. Blogging CMS platforms such as Wordpress, Wix, Squarespace and Drupal provide a rich ecosystem, even for those who aren't technical enough to run their own blog.

Unfortunately this only solves the content portion of replacing Medium, and not the distribution. There's no easy solution there, and your best bet is to post on as many channels (Twitter, Reddit, HN, etc...) as you can.

There are also a few Medium alternatives out there. I personally post my blog to Dev.to (which you might be reading this on right now) as they support the features I need to control my own content. As a product guy, there are definitely some UI changes I would make, but the overall experience is much better than Medium.