Every few years, we're told that we need to abandon self-hosted blogs and join a proprietary network. And every few years, we eventually discover that we got hoodwinked. Here's my journey back into the light.

In the early days of blogging, such activity was seen as the latest Internet offensive against the professional gatekeepers and old-school publishers of old. Bloggers unite! While it’s true that some bloggers used hosted, Software-as-a-Service platforms, as opposed to self-hosted, open source platforms such as Wordpress—in most cases blogs were clearly websites under the author’s direct control and often presented content via the author’s own design preferences. Even the most network-ish blogging platform in vogue only a few years ago, Tumblr, allowed for a custom design and domain name so that you barely could even tell some blogs were actually on Tumblr.

Yet for a while now, self-hosted/self-published blogs have been under attack. The first wave of the attack was powered by Facebook. We were told we didn’t need blogs anymore. Just create a Facebook Page and publish everything there! Put Facebook’s massive network effect to good use and avoid the complexity of having to maintain your own website.

Then reality began to creep in. Events such as Facebook tweaking their news feed algorithm dramatically to bury Facebook Page content unless you paid to have it “boosted” left a sour feeling in a lot of content marketers’ mouths. In addition, a number of well-respected content authors within a very short amount of time seemed to be shouting in unison that a much older publishing outlet was suddenly the new hotness again: email! Yes, that’s right, the lowly email newsletter was undergoing a sort of renaissance, and it simply didn’t make sense to promote an email newsletter if you didn’t also publish content on your own website under your direct control.

Enter Medium

Medium started with a very simple premise: the rise of social media (and particularly Twitter) threatened the cultivation and propagation of long-form, journalistic, quality publishing. There needed to be a snazzy new content network with a bias towards rewarding good content and punishing or eliminating “bad” content (aka clickbait, content farm garbage, etc.).

Now I want to state here on the outset that I have a great deal of respect for Medium as both a product and a company. I think they accomplished what they set out to do, and in the process moved the bar forward both in terms of content presentation (their minimalist style has had a big influence on blog design across the web) and content authoring (their in-page editor is pretty slick and now much copied in other platforms).

However, Medium has always had an awkward and uncomfortable relationship with the open web. In one sense, Medium benefits from the open web and in fact wouldn’t be possible without it. While there’s certainly a Medium mobile app, and Medium launched making use of Twitter’s network effect, I think it’s safe to say that a great deal of Medium’s traffic has come from web-based avenues (not to mention Medium’s editing tool up until recently was only available on the web).

On the other hand, Medium threatens the open web because it essentially replaces it. Instead of blogging on your own website, you blog on Medium either as an individual or within a publication. Instead of discovering content through web searches or links from other blogs/forums/etc., you discover content through Medium’s own content-surfacing features. Instead of following people through a variety of different social networks, email newsletters, bookmarks, forums, RSS, etc., you follow people using Medium’s own social network.

While it’s true that you can use your own domain for Medium publications (and that’s exactly what we did with the first version of INTERSECT), it’s pretty clear that it’s a Medium publication using Medium’s own design and marketing feature-set. Even your ability to email a newsletter to followers of your Medium publication is very tightly-controlled within Medium’s purview.

The False Promise of Medium

So why, pray tell, would any content author abandon publishing on their own website and publish instead on a proprietary network such as Medium? The answer is eyeballs. The promise of Medium is that the “best content” surfaces, bubbling up to the top and into everyone’s feeds, and you get way more traffic than you could with your own website. A recent such move by Basecamp—migrating their popular blog Signal v. Noise onto Medium—trumpets this phenomenon.

There’s only one problem with this scenario: it’s false. Medium is not immune from the negative aspects of network effects, and in fact seems strangely reluctant to tackle them. What I mean is that, as the network grows, more and more of the content that bubbles up to the top comes from an increasingly small number of top content publishers, and the gargantuan “long tail” of niche publishers and content by unknown authors gets completely buried. In other words, if you already have a large network and are well known, you may do quite well on Medium, but if you’re starting relatively from scratch, Medium will get you nowhere.

It’s kind of like the “top charts” on music stores, app download stores, etc. The very few things that actually make it onto the charts do incredibly well, but if you’re not one of the lucky ones to be featured in a chart or specially curated by the platform’s editorial team, you’re toast.

How do I know all this? Because, for me, Medium turned out to be a total bust.

Articles With No Traffic

I’ve always been accustomed to getting a certain measure of traffic to anything I write online, even if it’s only a handful of people. Through a variety of channels, somehow on my worst day I still see some activity. I’ve been publishing online since the 90’s (blogging before blogs were blogs!), so I’m no stranger to the ups and downs of the web content world.

Which is why I was flabbergasted to see, over time, that a number of the articles I posted on Medium got absolutely no traffic. That’s right, I’m talking zero readers. And even articles that did get some traffic never took off in the way you’d expect. I maybe got a few hundred reads but the vast majority of that audience came from outside of Medium—another forum, or social network, etc. Which begs the question: why publish content on Medium if the traffic you get isn’t intrinsic to Medium? If Medium boasts its own major network effect, I certainly never saw it.

However, when Medium recently rolled out new publication features such as email newsletters and custom domains, I decided to give it one last try. I’d been wanting to start a new online blog/magazine as part of a broad content marketing initiative at my company Whitefusion, and Medium’s tools made that an easy proposition. Thus the first version of INTERSECT was born.

And again, I saw exactly what I had seen previously with articles published under my personal profile. No traffic, or traffic that was virtually all coming from outside of Medium’s network. Sigh…

Enter Jekyll

A few years ago, after a string of bad experiences developing websites for clients using Wordpress, I decided to abandon Wordpress entirely and use something else as a blogging platform. I went through a number of different options (and for a while created and used my own startup’s publishing platform). When the Ghost platform arose out of a successful Kickstarter campaign a couple of years ago, I gave that a try. But I never really found something that wholly clicked with me. Every solution, including my own startup’s, seemed compromised in one way or another.

And then I discovered Jekyll.

I feel rather stupid in hindsight that I didn’t jump on the bandwagon much sooner. Jekyll is a static site generator that was first released a few years ago by one of the founders of GitHub, and in fact Jekyll powers the site hosting features on GitHub used by many open source software projects. So it’s not exactly “new”. Furthermore, Jekyll is a Ruby application and uses technologies such as the Liquid template engine—all things I am professionally familiar with and love. All I can say is, my programmer’s bias towards dynamic, database-driven solutions must have left me confused about why static site generators were interesting or useful, and thus I didn’t pay it much heed.

But due to setting up an open source project on GitHub of my own last year, I finally started to play around with and learn Jekyll. And that’s when my eyes were opened: Jekyll represents the very best of what the open web can provide to publishers, and in fact Jekyll offers concrete solutions to some of the issues that drive people to proprietary networks like Medium in the first place.

Performance. Nobody wants their blog to die under the weight of an influx of massive traffic. If you publish an article on Medium that suddenly gets millions of views, no worry. But if your little blog on a shared host somewhere or a single VPS suddenly gets millions of views, yikes! With Jekyll, that’s no longer an issue. Since the site is a static site (meaning that all the pages get generated once as regular HTML/CSS/JS/etc. files), you simply put it on a CDN (Content Delivery Network) and you now have the same performance characteristics that major content providers such as Netflix enjoy. No need to worry about caching your dynamic database-driven content because an entire Jekyll-generated site is essentially just one big cache!

Nobody wants their blog to die under the weight of an influx of massive traffic. If you publish an article on Medium that suddenly gets millions of views, no worry. But if your little blog on a shared host somewhere or a single VPS suddenly gets millions of views, yikes! With Jekyll, that’s no longer an issue. Since the site is a static site (meaning that all the pages get generated once as regular HTML/CSS/JS/etc. files), you simply put it on a CDN (Content Delivery Network) and you now have the same performance characteristics that major content providers such as Netflix enjoy. No need to worry about caching your dynamic database-driven content because an entire Jekyll-generated site is essentially just one big cache! Security. Nobody wants to deal with yet another Wordpress hack or Linux security breach or what-have-you just to put some content on the web. I don’t want to sit down in the morning to write and deal with "YOU GOT P0WNED!" staring me in the face. Again, because a Jekyll-generated site has no database or server code to deal with, it’s about as secure as you could imagine. I suppose, in theory, someone could hack into Amazon’s CloudFront CDN and change an HTML file’s contents, but that wouldn’t get them anywhere because a CDN by definition is a distributed network of edge points all distributing the same cached content, which is easily refreshed at any time by the origin. A Jekyll blog is essentially a hack-proof blog.

Nobody wants to deal with yet another Wordpress hack or Linux security breach or what-have-you just to put some content on the web. I don’t want to sit down in the morning to write and deal with staring me in the face. Again, because a Jekyll-generated site has no database or server code to deal with, it’s about as secure as you could imagine. I suppose, in theory, someone could hack into Amazon’s CloudFront CDN and change an HTML file’s contents, but that wouldn’t get them anywhere because a CDN by definition is a distributed network of edge points all distributing the same cached content, which is easily refreshed at any time by the origin. A Jekyll blog is essentially a hack-proof blog. Backups and Versioning. Because a Jekyll website/blog is typically managed using a version control system such as Git, you automatically get versioning and backups as a core feature of the platform. This website, for example, is stored in a Git repository at Bitbucket, as well as a Git repository on my local computer. So if Bitbucket exploded tomorrow (or, more likely, my computer), no harm done. And every, I mean every change to the website is logged. If a single word on one post is changed, that’s a new commit in the repository. If a color in the CSS stylesheet is changed, that’s a new commit in the repository. Even if a hacker somehow got access to my repository on Bitbucket and committed changes to the site, I could easily log in and rollback to a previous commit. And even if they somehow blew away the entire repository with all its version history, guess what? I still have a clone of that repository on my local machine I can simply push back up to the cloud. Booyeah!

Because a Jekyll website/blog is typically managed using a version control system such as Git, you automatically get versioning and backups as a core feature of the platform. This website, for example, is stored in a Git repository at Bitbucket, as well as a Git repository on my local computer. So if Bitbucket exploded tomorrow (or, more likely, my computer), no harm done. And every, I mean every change to the website is logged. If a single word on one post is changed, that’s a new commit in the repository. If a color in the CSS stylesheet is changed, that’s a new commit in the repository. Even if a hacker somehow got access to my repository on Bitbucket and committed changes to the site, I could easily log in and rollback to a previous commit. And even if they somehow blew away the entire repository with all its version history, guess what? I still have a clone of that repository on my local machine I can simply push back up to the cloud. Booyeah! Markdown & Authoring Speed. Now it’s true that out-of-the-box Jekyll is hard to use for a non-technical person, because it requires managing developer-focused software on your local computer and fiddling with text files. And yet…the flip-side is it’s incredibly fast to author and publish new content. This very article, for example, is a simple Markdown file I authored. All I have to do is commit this file to my local Git repository using SourceTree and push that commit up to Bitbucket, and boom! My article is published online. (How? I use Netlify which is a hosting company that auto-compiles Jekyll source files in your Git repository and distributes the generated site to a dedicated CDN.) Frankly, I find this authoring process more satisfying than dealing with funky WYSIWYG editors in some online CMS somewhere. In past times I’ve actually written in Markdown locally, and then copy-pasted generated HTML from the file into the HTML text field of an online CMS editor. Bad! Jekyll supports native Markdown (or HTML if you really prefer that) right out of the gate.

Finally, having your own website powered by Jekyll + a CDN is actually far more capable than a Medium publication because you can do whatever the hell you want with it. Want a signup form for your own email newsletter? No problem. Want blog comments linked to a web forum under your own control that fosters your own online community? No problem. Want lead-gen landing pages on your site? No problem. Want your own fonts, colors, layout, and design aesthetic? No problem.

The only thing you don’t get is the Medium network effect. But, guess what? You can still cross-post articles on Medium. Yes, the funny thing about Medium is they don’t forbid (and in fact encourage) reposting articles on Medium that you’ve already posted on your own site, and in fact those posts show up with a link at the bottom saying Originally published at (link). Your own website still gets all the link juice from Google, but you also get whatever network effect you might get on Medium. Best of both worlds???

Jekyll Forever!

As for me, whether or not I personally ever post on Medium again, I can say with certainty that I am never again getting hoodwinked by a proprietary publishing network. I fully believe in the mind-blowing awesomeness of the open web, where content is published on individual websites that are controlled fully by the authors of said content, and I am now 100% a convert to the wonderful capabilities of static site generation. If some day in the future I am no longer using Jekyll, I will be using whatever technology has evolved out of Jekyll, and that gets me pretty excited. As both a writer and a programmer, words are important to me. Words have great worth and need to be cared for and valued. Jekyll and its surrounding technological ecosystem make me feel like the words I write are being honored, and—at the end of the day—my happiness as a writer is what it’s all about.

Are you a writer or a publisher? Do you need help setting up a blazing-fast Jekyll-powered website or blog for your important content needs? Contact me today and let’s get this done.