Saying Goodbye to Medium

January 21, 2019

I've been writing blog posts about programming and game development since 2011. Every few years I change my platform. I've used Wordpress, Ghost, and most recently Medium.

Today I am saying goodbye to Medium. I'm leaving for two key reasons — poor reader experience and lack of control.

You're now reading a simple static webpage. I went this route for control, simplicity, and speed.

Reader Experience

Medium launched with a wonderful reader experience. Over time it has slowly declined.

Current Medium Gruber Rant

Second: John Gruber

There's banners on top. Banners on bottom. Social sidecrap on the left. Desperate pleas to install the mobile app. There's also a tracking policy pop-up I've dismissed a million times.

John Gruber complained years ago. There's a Chrome extension called Make Medium Readable Again. It's all so damn obnoxious.

Control

I write technical blog posts. I crave more features than Medium is capable of.

Here are a few of the things I can do that Medium can't.

Interactive Visualizations

In The Unbalanced Design of Super Smash Brothers I used d3.js to create interactive visualizations.

On Medium these awesome displays were reduced to boring screenshots. It was a travesty.

Super Smash Brothers Melee - Power Rankings

In part three of my Smash Brothers series I created a bespoke display with custom SVG.

Super Smash Brothers Melee — Tier List

Custom Video

Medium supports embeds such as YouTube and gfycat. They're clunky and laggy. YouTube downloads over half a megabyte of javascript alone!

Medium won't autoplay videos. Gfycat compresses the hell out of content. Aspect ratio control is limited. There's no efficient way to display a series of short, high-quality clips.

The following video of a haptic glove is from my portfolio. It's self-hosted and uses a vanilla <video> tag. No fancy javascript required.

Arbitrary JavaScript

In Reverse Engineering Sublime Text’s Fuzzy Match I figured out a clever algorithm. I implemented it in several languages, including javascript.

I've embedded a brief demo below. Medium, of course, can not do this.

Search Pattern

Results (Top 10)

Custom Styling

Medium isn't great for technical content. You can't nicely inline code such as int x = 5; x += 3;. It has no syntax highlighting of any kind.

let mut values : Vec<usize> = vec![3,5,8,13,21];
for (i, value) in values.iter_mut().enumerate() {
    *value *= i; // Multiply
}
assert_eq!(values, [0,5,16,39,84]);

Artisinal Handcrafted HTML and CSS

Enough about the past. Let's talk about the present.

This site does not use a generator like Jekyll or Hugo. It doesn't use any preprocessor or transpiler. It uses no frameworks.

This bad boy is handwritten HTML and CSS with a dash of VanillaJS.

But why? I've used static generators in the past. They mostly work. The problem is that I often can't get the exact layout I want. It can take hours of whack-a-mole when I'd rather hand edit the HTML and be done in 15 seconds.

The modern web is bloated. Blogs are simple. They don't need megabytes of javascript. I don't need an elaborate CMS. I just need to render some text with a few bits of rich media.

Reader Comments

One feature missing from my new site is comments. This is by design.

"Don't Read the Comments" is a wise life philosophy. Their signal-to-noise ratio is terrible. Getting a lot of comments is easy. Just post something inflammatory. Yawn.

I love hearing from readers. I just don't think janky systems like Disqus are the best means of communication.

I encourage readers to contact me on Twitter or e-mail. All feedback is welcome. I'll update posts with comments that are broadly interesting.

Closing Thoughts

I don't blame Medium for their changes. I think their intent is good. Once upon a time I sent a random e-mail to Ev Williams. He responded and we had a lovely exchange of ideas.

Unfortunately webservers, bandwidth, and salaries aren't free. Their business needs are real. Medium was founded in 2012. Seven years later I don't think they've found a sustainable business model.

I have no regrets with my time on Medium. I got a great looking, easy-to-read blog with zero effort. For free! I recommend Medium to any aspiring bloggers.

But it's time for me to move on.

I've got a lot of great posts planned for 2019. I couldn't be more excited.

Special Thanks

A huge thanks to lixelart for designing this site. My CSS skills are non-existent and I couldn't have created the responsive design on my own.