Back in 2008, Tom Preston-Werner wrote an article titled:
Blogging Like a Hacker, describing how he had created the first version of Jekyll, a blog-aware, static site generator. Jekyll was born from a desire to create a tool that approached blogging from a software development perspective. This meant that it had to be flexible, easily managed as a Git repository, and that complexity would be kept to an absolute minimum.
This combination of characteristics turned out to be very effective, and since then, many others have followed his lead and created similar static site generators, for both blogs and other types of websites. These tools are popular among software developers because it allows them to efficiently create static websites, without needing to manage a complex blogging engine such as WordPress.
While Jekyll has matured and seen a lot of improvements over the years, the basic concept remains the same. It takes a bunch of text files (written in Markdown or Textile), and combines them with your template and CSS files to generate the static HTML pages that make up your site. The website it produces is remarkably easy to deploy because it doesn't require any complicated server setup. The only thing the server needs to be able to do is serve static files, which means that the site can be hosted on services like Amazon S3, or even for free, using Github Pages.
While static site generators are very powerful, especially compared to their relative simplicity, they aren't for everyone. To someone who is not a software developer, or to stick with Tom Preston-Werner's vocabulary, not a hacker, the use of a command line tool to manage and deploy a blog might seem like a daunting task, especially when compared to hosted solutions like Medium, Ghost or WordPress. However, though hosted blogs are very easy to set up, they have their shortcomings. You often end up paying a monthly subscription fee to keep your site ad-free, and in terms of design and flexibility, you're stuck with whatever options are provided for you.
It seems like a gap exists between these different tools. On the one side we have static site generators, which offer a lot of flexibility, but aren't easy for everyone to use, and on the other side, there are hosted blogging tools, which are easy to use, but aren't very flexible. It is this gap that I am trying to fill with my most recent project, called Spelt. Spelt is a native Mac app built on top of a flexible, plugin-based, static site generator, which has been built from the ground up, and is written entirely in Swift.
The architecture for Spelt was inspired by Metalsmith, in that every component of the generator is a plugin, which manipulates a series of files. By chaining these plugins in various ways, it can be configured to do all sorts of tasks. My initial focus is on static site generation for blogs, but at its core it's just a tool to perform a set of operations on some files.
What's new about Spelt, is that it provides a native Mac UI, which is geared towards blogging as well. With Spelt, it is possible to create a blog, manage blog posts, preview your site, and deploy it to a service like Amazon S3. The app will ship with a few themes already included, so that setting up a new blog doesn't even require you to write any HTML or CSS. Of course, if you want to, you can still go in and edit all the source files, just like you would with any other static site generator. Now you just don't have to.
I am announcing this project today in order to gather some feedback before the app is completely finished. I would love to hear anything you have to say about Spelt, the state of blogging software, or that funny thing your cat did last night, so please drop me a line if you want to add to the conversation. Feel free to tweet at me, or send me an email at email@example.com. If you want to stay in the loop, and/or become a beta tester, please sign up for email updates; I promise not to spam you.
Check out the project at spelt.io.