Blog Tools
As a full stack developer, I feel like I have some responsibility to understand the breadth of tools available for building web experiences. So, what better way to kick start this blog than by getting lost in the infinite approaches to building one.
Typical blogging tools
To find out what is out there I began doing what I figure most new bloggers do, I Googled stuff.
Searches such as blogging platforms and where to blog were dominated by listicles such as “The best free blogging platforms for artists and designers in 2022” and “Compare The Best Blogging Platforms and Blog Sites of 2022”. While the results definitly feel a little too focused on SEO and driving clicks by aggregating what these sites are shilling, we can still get a sense of what’s popular.
Since the results for this search will change overtime, I logged all the sites in the top ten results as I encountered them. I documented which tools they thought to recommend, and added a few notes about what I saw. To make it easier to judge the popularity of a given tool, and to get a better sense of what is out there I then converted the recommendations into bar charts covering how often a site was mentioned.
“Blogging platforms” search result summary
Site | Solutions | Notes | |
---|---|---|---|
1 | Quicksprout | Wordpress, Wix, Squarespace, LinkedIn, Medium | Has nice logic behind each choice. Site built on WP |
2 | wpbeginner | Wordpress.org, Web.com, Wix, HubSpot CMS, Gator, Wordpress.com, Blogger, Tumblr, Medium, Squarespace, Ghost, Weebly | 12 items and I haven’t even heard of some much less tried to use them |
3 | Forbes | Wordpress, Wix, Weebly, Drupal, Squarespace, CMS Hub, Medium | Since simple taglines for each solution.• |
4 | Creative Bloq | Wix, Weebly, Substack, LinkedIn, Wordpress.org, Wordpress.com, Joomla, Postach.io, Site123, Jekyll, Tumblr, Blogger, Medium, SilverStripe, Hubpages, Contentful, | “The best free blogging platforms…” TANSTAAFL |
5 | Hubspot | CMS Hub, WordPress, Squarespace, Wix, Weebly, Craft CMS, Contently, Joomla, Drupal, Write.as, Blogger, Tumblr | Contently is different from contentful |
6 | techradar | Blogger, Wix, WordPress, Jekyll, Tumblr, Typepad | |
7 | neilpatel | Wordpress, Wix, Squarespace, Medium, Blogger, | |
8 | crazyegg | WordPress with Hostinger, Wix, Strikingly, Squarespace, Blogger | |
9 | bloggingwizard | Wordpress with Dreamhost, Squarespace, BigCommerce, Medium, Wordpress.com, Ghost, Tumblr, Weebly, Blogger | BigCommerce? I love the url. You’re a wizard Harry. |
10 | seedprod | Wordpress.org, Web.com, Gator, Hubspot CMS, Wordpress.com, Tumblr, Medium, Squarespace, Wix |
“Where to blog” search result summary
Site | Solutions | Notes | |
---|---|---|---|
1 | themeisle | Wix, Wordpress.org, Linkedin, Weebly, Medium, Ghost, Blogger, Tumblr, Joomla, Jimdo | “The best free blog sites to consider in 2022” |
2 | wpbeginner | Wordpress.org, Web.com, Wix, HubSpot CMS, Gator, Wordpress.com, Blogger, Tumblr, Medium, Squarespace, Ghost, Weebly | |
3 | First Site Guide | wordpress.com, wordpress.org, Medium, Blogger, Tumblr, Wix, Ghost, Postach.io, Weebly, Typepad | |
4 | Quicksprout | Wordpress, Wix, Squarespace, LinkedIn, Medium | |
5 | Creative Bloq | Wix, Weebly, Substack, LinkedIn, Wordpress.org, Wordpress.com, Joomla, Postach.io, Site123, Jekyll, Tumblr, Blogger, Medium, SilverStripe, Hubpages, Contentful, | |
6 | ryrob | Wordpress (self-hosted aka wordpress.org), Wix, Wordpress.com, Weebly, Medium, Blogger, Ghost, Tumblr, Joomla, Yola | “10 Best Free Blogging Sites to Use in 2022” |
7 | the blog starter | Wordpress by BlueHost | Seems like a simple wordpress on bluehost shill |
8 | techradar | Blogger, Wix, WordPress, Jekyll, Tumblr, Typepad | |
9 | guru99 | Wix, Wordpress, Strikingly, Blogger, Medium, Weebly, Site123, Squarespace, Tumblr, Ghost, Write.as, Drupal, Jekyll, Jimdo, Joomla, Postach.io, Typepad, Svbtle, | “20 Best FREE Blogging Sites (Top Blog Platforms) in Aug 2022” |
10 | the minimalists | Wordpress by Bluehost | “How to start a successful blog in 2022”. Entirely wordpress focused. |
Given the results of the data and the articles, it seems clear that if blogging is the goal, the decision needs to start with “Why not Wordpress?” Some of these tools such as LinkedIn or Tumblr have very specific niches, but for blogging in it’s pure form, Wordpress is clearly a safe choice.
Since I’ve already used Wordpress, I want to try something else. As it turns out there is one category of tool that appears in this search that I’m really interested in. The tool is Jekyll, and the category is static site generators (SSGs). And it turns out, that’s an even deeper rabbit hole. So, even if it’s not the most painless approach, let’s do this!
Bring on the SSGs!!!
Static Site Generators (SSGs)
For years now, I’ve been distantly observing the jamstack ecosystem evolve, and have found I really want to push deeper into that space. For better or worse, unlike in the traditional blog world, searches for SSGs and jamstack blogging doesn’t reveal a clear hierarchy of well established tools. For example searching static site blog gave me the following set of results.
Site (Article Linked) | Tools mentioned | Notes | |
---|---|---|---|
1 | Jamstack | Top 10 by GH stars: next.js, Hugo, Gatsby, Jekyll, Nuxt, Docusaurus, Hexo, Slate, GitBook, Docsify | 347 total generators listed!!! The goal of these is really all over the map. |
2 | Jekyllrb | Jekyll | duh |
3 | Kinsta | Jekyll, Hugo, Gridsome, Eleventy (11ty), Pelican | SSGs include SEO optimization?! Unlike the above stuff, I actually found myself reading this. Interesting read esp since kinsta seems to be a Wordpress service provider. |
4 | Freecodecamp | Mentioned considered (not all SSGs): Pelican, Hugo, Hexo, Gridsome, VuePress, Ghost, Gatsby, Jekyll | Article “How to Build a Blog Using a Static Site Generator and a CDN” is pretty meh, and mostly just a Hugo tutorial. |
5 | gohugo.io | Hugo | Hugo. Duh. |
6 | Snipcart | Primary: Next.js, 11th, Gatsby, Nuxt.js, Hugo, Jekyll Emerging: Astro, SvelteKit, Bridgetown, VuePress, Scully | “The Top 6 Static Site Generators in 2022”. The author Brian Rinaldi, has a wealth of knowledge around the jamstack. https://remotesynthesis.com/ & twitter. He also wrote a book: https://livebook.manning.com/book/the-jamstack-book?origin=product-look-inside |
7 | arun.is | Non-javascript: Hugo (Go), Zola (Rust) (Hugo supposedly written by a frustrated Jekyll dev, and Zola by a frustrated Hugo dev. LOL) JS based: 11ty (very minimal JS), Astro, Gatsby (good for react blogs), Next, Gridsome, Nuxt, Sveltekit, | Opinionated pairing down of jamstack.org from September 2021. I don’t really buy some of the logic. Feels trendy. Tossed Jekyll, Hexo and Pelican for being less active despite being popular. Isn’t stable a good thing?! |
8 | prosvetova.com | Jekyll, Hugo, Gatsby, and Pelican | Drawing at head of page is PRO. Love the layout on a narrow screen. Not so hot full screen. Where did they get the idea of “over 400 different SSGs to choose from” when jamstack.org only shows 347. Did there used to be a ton more? |
9 | gitlab blog | Hugo, Zola, Jekyll, Hexo, Gatsby JS, Astro | “How to choose the right static site generator” — I like this |
10 | Netlify | Gatsby, Next.js, Nuxt.js, Jekyll, Hugo, Gridsome, Docusaurus, Eleventy, Scully, SvelteKit, Vite | “10 static site generators to watch in 2021” |
jamstack.org as the first result made total sense. Unfortunately, the problem with this site is that it doesn’t break the generators down by use case. It’s obvious just from the names that with things like Docusaurus and Docsify in the top ten, not everything there makes sense for a blog. In the later search results, some of the other sites are just websites for specific SSGs which doesn’t offer much of a comparison. After flopping around for few hours it was clear that I needed to narrow my quest down to a few tools to focus on. Here is what I came up with.
Round 1
Jekyll, Hugo, Hexo, 11ty, Zola, Pelican (In order of priority)
These are the tools I decided looked the most interesting for an initial comparison.
Round 2
Gridsome, Gatsby, Astro, Nuxt.js, Next.js, SvelteKit (In order of priority)
These are tools that I thought would be good to dig into if I had enough time. Turns out I didn’t, but I do want to revisit these eventually.
Hosting
Beyond tools to help build the page, the sites eventually need to live somewhere. As I poked at static site tools I also took some time to gather the hosting options I wanted to review, and here’s what I decided to start with:
Netlify, Vercel, AWS Amplify, GitHub Pages, Gitlab Pages
However, as my built in deadline for a site drew near, I punted on this. Let’s run with Netlify. They run jamstack.org. I’ve used them before and was absolutely delighted with my experience. Easy peasy. Like deciding to build your blog using wordpress. Ha!
Round 1 explored
Round 1 turned out to be the only round as I found I had more to learn than I expected. I tried building sites with most of these tools, and spend some solid time looking through the documentation for each of them. My overall feeling about them is found below.
Jekyll - The OG of SSGs. Every tool on this list compares themselves to Jekyll. It’s the only tool on this list that I’ve used before. Lots have things have been built with it. Some have noted that development on the tool is slow at this point, but that seems to be more of a sign of maturity. I expect this tool to be around in some form for a long time. Well built. If I was less interested in the latest popular trends, I could have surely been satisfied picking up this tool.
Hugo - The next most popular SSG. Fast. Seems like there is a common complaint about the Golang templates being odd. Also seems like there are complaints about how it can be to work outside the well defined expectations.
Hexo - Unlike some other tools, seems to assume user already knows what they want and understand a log of SSG concepts. I felt like it really needs a clearer recommended path. Instead it feels like too many decisions are put in front of the user in the beginning. Didn’t give it too much of a fair shake because it felt like yet another tool in the sea of npm chaos with nothing special on offer.Pass.
11ty - There are parts of the site that I don’t like. Too busy. Too much marketing. It also seems much more ambitious than some of the other tools I decided to explore. It’s very clearly intended to go beyond more than just another blogging tool. In fact, the lack of an easy to find build a blog tutorial was a big turn off for me. Given the concept is intended to focus on flexibility I also found there are too many decisions to be made up front for someone who hasn’t been using SSGs much before starting this blog. Lacking an opinion on many of those decisions I’ve decided to hold off on going too deep with this one today. I felt like if I decided to embrace this project for my blog it would be many more weeks before I produced anything. I do however see this as an important project to return to. Its one of the younger tools on this list, but seems to have developed a lot of inertia.
Zola - Known for being constructed on a foundation of frustration with Hugo. Consequently I came to it really wanting to love it. Given it has the fewest GitHub stars out of all the tools tested, and doesn’t seem to have quite the same buzz around it as 11ty I’m hesitant to embrace it. The base language, Rust, was also the furthest outside my wheelhouse for all the tools I try. Although I believe the base language isn’t very important to the developer, it is one more thing I didn’t want to deal with as my deadline for choosing a blog came closer. Its name is also annoyingly difficult to search for. Both a film released in 2021, and a wedding registry of the same name really hurt its SEO.
Pelican - Chosen because I’ve written far more lines of Python than any other language. However, it was the last tool I decided to consider, and by the time I got to looking at it, I was already jaded. Six tools that all do the same thing turns out to be a lot to evaluate properly. One thing that always stood out with Pelican was the position of reStructuredText as a first class citizen for writing content. While this format has traditionally been popular in the Python space, it was surprising to see it given equal standing with Markdown in this decade. I liked the docs for this project, and will definitely return to it if I ever try peeling the covers off how these tools were built.
At this point in my journey I find it hard to distinguish one tool from another. It feels like this leads to the language the tools were written in coming across as too important, Yet given my experience these past few weeks, this seems over valued. So, I’ve decided that until I use one a bunch I won’t really recognize where a system falls flat.
It’s actually kind of amazing that anything new can gain any traction. Building one is apparently so straight forward that some use it as one of their standard projects when learning a new language.
n kicking off this personal blog I’ve opted to use Hugo, but I don’t think anything on this list would have been a bad choice. With the simple needs I have, I expect my use case will not need to deviate too far from what Hugo does well. I expect it serve me well for as long as I maintain interest in this blog, but if (when) I decide to change, I hope to have a much greater intuition for the decisions some of the other tools want the user to make up front.
Potential future paths of study
- How to build a static site generator
- The code used by the various generators out there
- Template languages – There are sooooo many which I think has to do with how easy they are to create
- Go Templates (Hugo)
- Amber & Ace – Two now unloved template systems formerly usable with Hugo
- Nunjucks – Javascript template language inspired by Jinja2. Used by 11ty. Under the Mozilla umbrella. Seems like it’s been going unmaintained the last couple of years.
- Liquid – Used with Jekyll and available with 11ty
- Tera – Used with Zola
- Jamstack generally – This is certainly one I’ll continue coming back to from various angles
- MDX - JSX inside markdown
- Markdown flavors
Nice resources
Snipcart blog – They have wonderful guest articles by individuals such as Colby Fayock and Brian Rinaldi who have a lot to say about the benefits of the Jamstack arcitecture.