Strike3

 

What is Strike3?

Strike3 is a static site generator written in Xojo. It can be used to build all sorts of websites ranging from blogs to portfolios to documentation sites. Unlike popular website frameworks like WordPress, Ghost and Movable Type (which dynamically build each page each time a visitor requests one), Strike3 builds your site when you create content. Since websites are viewed much more often than they are edited, this means your site will be rendered fast. As a bonus, the writing experience that Strike3 delivers is clean and simple.

Sites built with Strike3 are fast and secure. You don’t need to worry about the latest vulnerability found in your blogging engine because your site is just simple HTML. You can deploy sites built with Strike3 on virtually any host and because the server doesn’t have to render each page upon every visit, you don’t need a powerful server for hosting and this saves you money.

What does Strike3 do?

Put simply, Strike3 takes a folder of plain text files and a theme (a collection of HTML files) and uses those to create a completely self-contained website.

Strike3 currently has the following features:

General

  • Cross platform. Runs on macOS and Windows
  • Easy to install
  • Comprehensive theme support. Make your website your own
  • Host your site absolutely anywhere
  • Free

Organisation

  • Conceptually simple content organisation
  • Supports website sections
  • Customisable page and post titles
  • Navigation menu generation
  • Pretty URLs

Content

  • Content is written in fabulous Markdown
  • Supports JSON frontmatter for custom post data
  • Fully customisable homepage
  • Theme support for multiple sections, single posts and lists
  • Easy theme creation with a logic-less templating language
  • Automatic post summaries
  • “Minutes to read” functionality
  • Automatic word count functionality

Extras

  • Automatic RSS feed generation
  • Automatic archive creation
  • Syntax highlighting can be easily added with Javascript

Why use Strike3 and not WordPress?

WordPress is a great open source endeavour that powers lots of popular sites on the web. However, what started as a blogging engine has developed into a huge general purpose website generator written in an interpreted programming language that has to construct each page every time it’s visited.

Creating a page dynamically means that the server (the computer hosting the site) has to have sufficient RAM and CPU power to basically run the generator 24/7. If the server is underpowered then the visitor to the page will have to wait until resources become available before the page can be served, leading to a slow browsing experience. Some people argue that this is an advantage over static site generators like Strike3 as content is always up-to-date. However, since the world is impatient, dynamic site generators (like WordPress) cache HTML files once they’re built. Cached files are temporarily stored on the server but if you make a change to a part of the system, the page served to the user may not be the most up-to-date one. If your framework is going to cache files anyway, you may as well use a static site generator and view the files locally on your own computer before uploading them. This renders this common anti-static site generator argument a moot point.

Not running a dynamic site generator on your server has a number of benefits, the biggest probably being performance. Servers are very good at, guess what, serving HTML files. So good in fact that you can pretty much serve the same number of pages using a static site generator with a fraction of the RAM and CPU needed for a dynamic site.

How fast is Strike3? Whenever you change the content of a site, you need to rebuild it. That sounds like it might take a long time right? Wrong. I decided to push Strike3 and see how long it would take to build a blog with 2000 posts, an archive and the RSS feed. Bear in mind that 2000 posts would take a casual blogger (posting every single day) 5.5 years to generate that much content. It takes Strike3 about 10 seconds to build. Not too shabby in my humble opinion.

Is Strike3 for me? If you prefer writing content in a text editor rather than a browser then yes.

If you prefer to retain complete control over the organisation and portability of your code and content then yes.

If you want a lean and fast site then yes.

Why did you make yet another static site generator?

I’ve been blogging on and off for a number of years and have built countless websites both by hand and with WordPress. Increasingly I was finding WordPress more of a hindrance to work with than a help, mostly around how tedious it is to create a new theme using PHP. I also really wanted to write my content in Markdown which WordPress “supports” but in a bolted-on, less than ideal, way.

I next tried Ghost as it’s designed around writing content in Markdown. Whilst I liked the browser-based Markdown editor I disliked two things:

  1. It’s Node based and I’m just not a fan of Node
  2. It didn’t support a static home page

After that I turned to the static site generators. After a lot of experimenting I decided that none of them were a good fit for me for a variety of reasons and so I decided to build my own. I particularly wanted to make it easy to create new themes. I also really wanted to write something in Xojo that was cross platform and this seemed like the perfect project.

What about the name? Strike3 is my third attempt at writing a static site generator in Xojo and improves enormously upon the previous two iterations. Strike3 is robust, fast and fun to work with. For those interested, the first attempt was called Aoife and the second attempt was called Maebh. These were named after my daughters. The Strike3 name seemed obvious 😀.