December 29, 2020
Choosing a Blogging Platform
As I mentioned in my recent newsletter, I’ve been spending a lot of time during lockdown trying out different web platforms to host my personal website and blog.
The main factors I was interested in were:
- Ease of setup and maintenance: I find it very easy to procrastinate on writing by tinkering with the technical details of my systems, so I wanted something that would need minimal effort and get me to focus on actually writing.
- Pleasantness to use: Again, I wanted something that would encourage me to actually write and publish, so having a nice Content Management System (CMS) and user interface was important to me.
- Ease of export / transfer: I change my systems like I change my socks. I wanted to know that I could export my content easily and not be locked in to a particular system.
- Control and flexibility: Although I wanted something simple, I also wanted to have some degree of control and flexibility over my content, for example: a custom domain name, custom CSS, embedding arbitrary HTML, etc.
Stuff that I won’t go into much here:
- Price: The options here range from free to a few tens of dollars per month. Most options have multiple pricing plans so it would be too complicated to go into them all here (though I’ve touched on it in a few cases), but you can easily look up pricing info.
- SEO: My approach to SEO is to try to write good content, avoid weird hacks, and not worry about the rest. It’s possible that some of the options below will be better than others when it comes to SEO, but I didn’t really look into it.
Squarespace / Wix / Other Drag-and-Drop Website Builders
I’m getting these out of the way first as I don’t actually know much about them - I get the vibe that they are primarily aimed at absolute beginners who need a lot of hand-holding and are willing to pay for it. My understanding is that they are used for all kinds of websites (not just blogs), but are fairly limited in terms of customization.
If you need something more elaborate than a straightforward blog and don’t have any technical inclination, these are the way to go. Otherwise, one of the other options is likely a better bet.
Hands-down, Medium is the easiest way to get started writing online. It has a beautiful user interface (on both web and mobile), simple stats, and a built in audience. Medium is a joy to use.
However, it comes with some significant downsides:
- No custom domains (currently): this is a huge problem for anyone who wants control and ownership of their online presence. However, there are rumors that custom domains will be reintroduced soon, which will make Medium much more appealing.
- Very limited customization options: if you want anything beyond a blog, Medium is not for you.
- Very little control - if you want to earn money on your blog you are limited to their monetization model, you can’t embed certain types of content (such as email sign up forms), etc.
If all you want is to write with the lowest barrier to entry possible, Medium is the way to go. It probably won’t be too tricky to transfer your content to another platform later if you need more functionality - though you might lose stuff like comments. For anything more, you’ll want to look elsewhere.
Substack is a blog combined with email distribution. It’s like Medium in that it’s super simple to start writing, but has the added benefit of allowing you to build up an email list and reach your readers in their inbox.
Like Medium, customization options are super limited. Until recently, they did not support custom domains, but it looks like they have recently added this for a one-time $50 fee. You also won’t be able to build out any kind of personal website beyond a blog - it’s primarily a tool for writing blog posts and distributing them via email.
Although the interface is a little less seamless, Substack is probably a slightly better option than Medium for most people who just want to start writing, due to having more control over your audience and domain name.
Wordpress is by far the most widely used platform and is likely the default option for people starting a blog. It’s fine.
You can either host it yourself using wordpress.org (free, though you’ll need to pay separately for hosting, and handle some of the technical stuff), or you can pay them to host it all for you using wordpress.com. The payment options for the hosted versions are kind of weird - on the cheapest option ($4 per month) it will still show ads on your site. The hosted options don’t seem like great value to me, but it will save you the work of setting up hosting separately.
Although primarily a blogging platform, there are so many plugins now that you can use it for a whole range of sites. It’s pretty flexible - I especially like the Shortcodes that you can use in posts to add functionality in a straightforward way.
Another good thing is how easy it is to post to Wordpress from anywhere: it has a mobile app, and lots of services have Wordpress integrations that allow you to share snippets to your site seamlessly.
Also, from a longevity and transferability point of view it’s a pretty safe bet - so many people rely on it it’s unlikely to go away anytime soon, and because of its ubiquity pretty much every other service has ‘import from Wordpress’ functionality if you do decide to jump ship at some point.
The main downsides:
- It can be soooo sloooooow. Although the writing interface has improved a lot, it still feels janky and laggy to me.
- It is bloated. The number of plugins and possible customizations are overwhelming, and they make it easy to inadvertently make ugly and slow sites.
- It just generally feels a bit behind the times - like MySpace once everyone had moved on to Facebook.
I actually think Wordpress is still a decent option for many people who want to play it safe, and want to have a reasonable degree of flexibility without having to get too much into technical weeds.
Usually, graphical user interfaces for web development generate horrible bloaty code. Webflow has cleverly found a way to allow people to build complex custom websites using a visual interface that directly edits HTML - resulting in cleaner code without needing to write it yourself.
There is still a bit of a learning curve - but it’s more like the learning curve for Photoshop than the learning curve for programming.
The main downside to Webflow in my opinion is the clunky CMS. While Medium, Ghost, and even Wordpress now have pretty seamless writing experiences, entering content into Webflow is much more like data entry. If you’re someone who wants posting to be as easy as possible, this might get irritating. There’s also the fact that because your content is in this proprietary database, it’s much harder to export your content or transfer it to a different service.
However, the complex database system does make it possible to build elaborate custom structure to the website, for example if you wanted to have a blog, a portfolio, and ecommerce functionality on the site - you can make it happen.
Webflow is great for people who need something more than a straightforward blog, who are comfortable with a bit of a learning curve, and who want something very customizable.
Jekyll / Hugo / Gatsby / Eleventy / Other Static Site Generators
Static site generators are beloved by nerds. They load fast, provide tons of control and flexibility, and allow you to write your content in local Markdown files.
The latter item in particular is a huge plus in my opinion - being able to write posts in Markdown files is the ultimate in transferability. These systems are also very customizable if you know what you’re doing.
The problem is, you will absolutely need to be comfortable using the terminal, Git, Stack Overflow (for troubleshooting), and various programming languages to use these systems. If that’s not you, I’d give it a pass. Although you might be able to follow a tutorial to get something up and running, there will inevitably be something that goes a bit wrong, or something you’d like to tweak, and you’ll be lost. I have a masters in Computer Science and worked for years in web development, and even I find myself going down rabbit holes for hours tracing down dependencies, hacking things together, and then having all my customizations break when I try to update to the latest version.
I got really excited about the idea of using Obsidian as the CMS for my Markdown files when I was using a static site generator. The problem is, the conventions for Markdown in Obsidian aren’t always compatible with the expectations of the site generator. For example, Obsidian uses double-bracket
[[wiki-links]], whereas static site generators will generally expect traditional
[Markdown](links). (Side note: There are some settings you can tweak to address this problem in particular but the point is you will lose out on many of the benefits of using something like Obsidian and may as well just use a normal text-editor). Some people have written scripts that take Obsidian or Roam Research vaults and turn them into static site content, but again you have to have a fair amount of technical savvy to use these.
Static site generators are great for people who have decent technical skills, love endless tinkering, and want the control and longevity of Markdown files.
Blot.im is a very underrated service. It allows you to write your content in Markdown files stored locally, and for $4 per month it handles all the messy stuff so that your site just works. You can choose from a limited number of themes, but if you know CSS you can do a lot of customization to the look of your site.
It’s built by one developer who is super responsive to emails. I used blot.im for a while and was very happy with it - it’s a great option for people who want the benefit of Markdown files without having to worry about the technical side of static site generators. For reasons I discuss below, I ended up switching to Ghost, however blot.im comes in at a close second for me.
Ghost is primarily a blogging platform; some people think of it as a simpler, more sophisticated version of Wordpress - it has all the usual stuff you’d expect from a classic blogging platform; custom domains, RSS, scheduled posts, custom menu navigation, etc. Like Medium, the writing interface is a joy to use. Like Substack, you can build a membership and distribute posts via email. For me, it turned out to have the best balance of the stuff I cared about.
There are plenty of themes to choose from, but almost all seem to be clean and high-quality. I love the fact that I can use ‘Code Injection’ to sneak in custom CSS and scripts without having to edit the theme directly (making it easy to update to new versions of the theme without breaking stuff).
The default configurations probably cover most use cases, but Ghost also allows for slightly more customizability through dynamic routing and a clever tag system. So while I currently value the simplicity of a blog, it’s nice to know that if I wanted to add a portfolio or other types of content it would be reasonably straightforward.
GhostPro (the hosted version) is pretty pricey at $29 per month, but Ghost itself is open source (and therefore free). I got a $5/month Digital Ocean droplet and host it there - it was surprisingly straightforward to set up!
The two main downsides to Ghost I’ve encountered so far are:
- No built-in comment system. You can add comments to your posts using third-party services, but this is a bit of a hassle.
- The only export option is to a single massive JSON file. This is a slight pain, but there are scripts that can convert the JSON file into a series of Markdown files, so it’s not too bad.
Ghost is great for people who want the functionality and control of a traditional blogging platform but with a more modern, sophisticated design and a delightful writing experience.
Notion / Obsidian Publish / Amplenote / Roam Research / Other Note-Taking Tools
This is kind of a wildcard option I’m throwing in - none of these are traditional blogging platforms or website builders - they were all built primarily as personal note-taking tools, but have the ability to publish or share notes. This opens up an exciting space for them to act as super simple yet powerful content management systems for publishing online.
As of writing, none of these support custom domains directly, though for some there are ways of hacking it together. They are also missing features you would traditionally want from a blogging platform such as RSS.
While people are starting to experiment with using these platforms as personal websites, I don’t think they quite meet the needs of most people yet - though I’m excited about the future.