Admitting defeat

I’m over static site generators and am moving back to a blogging platform for normal humans. Things I don’t like about the static site generator experience:

  • Using the command line to update my blog
  • Working with multi-media
    • Referencing images using Markdown sucks
    • Dislike not being able to copy-paste screenshots from my clipboard
    • I don’t even want to think about videos
  • Remembering the front matter
  • Needing to compile from posts created in dedicated writing environments (Dropbox Paper, vs vim) into Markdown
  • Mucking with Jekyll/Hugo theme markup to customize it to my liking
  • All the friction involved in every aspect of managing the blog
    • Every operation requires a git commit + push (new post, edits, renaming)
    • Waiting for blog to deploy via git
    • Clicking an edit button in my browser is so, so much easier than finding the markdown file, editing it, and running some command to rebuild and redeploy the post.

Things I did like:

  • Free hosting
  • Free, automatic SSL cert management

For some reason the site generator is just high enough friction to prevent me from writing. What made this evident was the amount I’ve been blogging on Indie Hackers just because it was such a seamless experience (over 10 posts this year!). It’s important for me to be able to write and publish when I’m inspired and opening the terminal really kills that flow.

Here are some specific requirements:

  • Home page: List of posts, with dates and categories. Optional small excerpt.
  • Simple “About me” page
  • List of all post categories
  • Archive of all posts
  • Scrolling code blocks
  • “site.com/2020/08/10/post-title” style urls
  • Footnotes
  • Low friction way to add and layout multimedia

Here’s everything I considered:

  • Blogger: 
    • Pros
      • Meets most of my needs out of the box
      • Good design
    • Cons
      • Feels archaic
      • Poor editing experience
      • Poor code blocks support
  • Medium
    • Pros
      • Nice composing environment
      • Zero hassle
    • Cons
      • No scrolling code blocks
      • Must have Medium account to view posts
  • WordPress
    • Pros
      • Minimal hassle
      • Good themes
      • Good editing experience
      • Extremely widely used
    • Cons
      • No native footnotes (require plugin)
      • May require some layout customization
      • Potentially requires sysadmin work

I ended up going with WordPress. WordPress.com hosting seemed like a good solution until I discovered the lack of native footnote support. Footnotes requires a plugin which is only available with wordpress.com’s rather expensive business plan.
A few options for alternative hosting are:

  • Bluehost
    • Pros
      • Well known for hosting
      • Free SSL
    • Cons
      • Fairly expensive ($7.88/mo)
      • Feels old? Reminds me of my days using HostGator for my first website.
  • Digital Ocean
    • Pros
      • Full control over server
      • 1-click WP install via Digital Ocean Marketplace
    • Cons
      • Requires sysadmin work
      • Not even that cheap. Cheapest DO box is $5/month.
  • EasyWP (Namecheap)
    • Pros
      • Cheap. < $4/mo for basic plan (And even cheaper with annual subscription).
      • I already use and like Namecheap for buying domains.
      • Good interface.
    • Cons
      • No free SSL on basic plan.

I went with EasyWP because it was very cheap, has a nice UI, and integrates well with Namecheap domains. I was able to export my wordpress.com site and import it into EasyWP’s hosted WP fairly easily.

After importing the posts, I installed the Twenty Ten theme which I like a lot (after seeing Bruce Dawson’s blog). There were a few final config steps after that

  • Theme customization: I customized the widget on the right side to show a list of Recent posts, Categories, and Archives. This was delightfully easy.1
  • Permalinks with the date: This was a simple setting that was also delightfully easy.
  • Syntax Highlighting: I tried a few syntax highlighting plugins and settled on the “Highlighting Code Block” plugin.
  • Footnotes: I installed the “Easy Footnotes” plugin.
  • Disabling the author of posts: This seems built into the theme, so I needed to use custom css (.meta-sep, .author {display: none;})
  • Home page post excerpts: I needed to configure the homepage to show “Your latest posts” and then remember to use the “More” block to tell WordPress where to cut an article off on the home page.
  • SSL: I could have paid for EasyWP’s $8/mo plan, but that seemed a bit pricey just for SSL which I can do myself. I manually bought Namecheap’s cheapest personal SSL cert and was able to set it up by following their instructions, although it wasn’t the easiest thing to do. I used DNS CNAME validation to avoid having to FTP files to the EasyWP server.

Here were all the plugins I installed:

  • Display Posts: The “Latest Posts” block didn’t provide categories for posts. This plugin offers that.
  • Code Snippets: … but Display Posts required writing a bit of php, which Code Snippets lets you do easily within the dashboard.
  • Easy Footnotes
  • Highlighting Code Block
  • GA Google Analytics
  • Jetpack: Enables some wordpress.com features (analytics, CDN).
  • Yoast SEO

Cool. Now I have a solid blog that doesn’t require the command line to use. If the improved writing and publishing flow don’t motivate me to write more, then maybe the fact that I’m now paying will 😉


Edit: 9/13/2020

Since writing this I updated the blog to the Twenty Twelve theme because Twenty Ten isn’t responsive. Twenty Twelve has a very similar aesthetic.

Porting was easy. I needed to update the sidebar widget because the sections got duplicated (“Recent posts, categories, archives”). What was a bit more complex was getting the author profile to show up at the end of the post. Twenty Ten unconditionally shows author information, even if there is only 1 author (you do need to fill in an author description for the user to trigger an author profile at the end). Twenty Twelve detects if there is only 1 author on the site and suppresses all author information in that case. To work around, I made a “junk” author and assigned them 1 random post on the blog. This causes Twenty Twelve to show the author profiles, though I did again need some custom css to suppress the “By Mark” text on the homepage.

Edit: 9/14/2020

After a few more days over using and tweaking the site I’m very pleased with the decision to go with WordPress. There is excellent community for support for adding analytics and SEO optimization, and the wealth of plugins available is extremely valuable. For example is was trivial to set up social sharing links and like buttons using Jetpack. Comments are already built into WordPress, but Jetpack enables login using Google, etc which is nifty. Jetpack also makes it really easy to set up a mailing list if I want one.

Anecdotally, nearly every question I have about how to do something is already answered already on a forum somewhere, which is great.

A downside is that my site is quite bloated, both from an installation perspective, and raw page sizes being generated. Between Yoast SEO, Jetpack, Google Site Kit, there is a tremendous amount of HTML being generated, most of which I do not understand at all. I’m assuming it’s taking care of the most modern practices for SEO compliance, etc which I have no interest in learning about, so I’m fine with this.

  1. As an aside: Getting these two images to arrange nicely in columns was trivially easy using the “Gallery” block. I’m not sure how you’d do it with Markdown? Probably need to dive into custom HTML😣 Hopefully this will be just one example of time saved using WordPress.

2 thoughts on “Admitting defeat

  1. Shades

    I would never *ever* host with Bluehost. I was a customer with them for 8+ years and they pulled a scam on me, held my websites hostage and demanded that I pay hundreds of dollars to remove the nonexistent “malware” from my “servers”. It’s a very common scam that they are doing these days – common enough to get some law firms interested: https://www.jenniferford.lawyer/bluehost-sitelock-scam/#:~:text=This%20is%20the%20business%20model,owners%20are%20at%20their%20mercy.

    I’m currently on cloudey.net as my hosting and they have been really great so far.

    Reply

Any thoughts?