Why I created Simply Static

Simply Static received its first review yesterday; 5-stars! I’d be lying if I said I wasn’t excited. Though, in reading the review, I’m not sure I would have given myself 5 stars. Here’s what they said (emphasis mine):

Easy, simple, works. After file generation you need to hand copy some folders that could be miss because not linked inside the html generated by WP, like Revolution slider folders. Also you need to add file with retina extension that are normally generated by your template (e.g. [email protected]).

After reading the review I was feeling frustrated that he still had to copy over files to get everything to work. What good is a static site generator that doesn’t generate all of the files you need for your static site? No good at all.

Before I created Simply Static, I had a Ruby on Rails webapp. I needed a way to create a couple pages (Terms of Use, Privacy Policy) and maintain a blog for it.

Being that it was Rails, I could have easily built in the functionality to create pages and blog posts. But those weren’t the primary feature of my app. Adding those to Rails felt like adding unnecessary cruft. And I didn’t want to maintain HTML files by hand. What I wanted was WordPress, generating exactly the pages I needed.

If you’ve ever tried to use WordPress side-by-side with something like Ruby on Rails, you quickly find that your easiest option is to set it up on a subdomain. Which I didn’t want. I wanted everything on a single domain. A slightly more complicated option is to point specific paths at WordPress, e.g. everything at /blog/ goes to WordPress. That worked, but for arbitrary pages (e.g. /privacy) you have to hard-code each of those. Not ideal, but a little bit closer to what I wanted.

However, my fear in using WordPress on the same machine as my webapp is that WordPress is a fantastic target for hackers, and I didn’t want a compromise of WordPress to affect my webapp. In an ideal scenario, I wanted to use WordPress to create the content but publish static pages for my webapp to serve. WordPress would remain safely locked away somewhere but I’d still get the pages and blog posts that I wanted.

And so I began my search for a static site generator for WordPress.

Surprisingly, I found three static site generator plugins for WordPress. Finding them was difficult though. One of them (the one that works the best) hasn’t been updated in over 3 years and is virtually impossible to find on the WordPress plugin search engine unless you type in the name exactly. In fact, I only found it because someone mentioned it on a Hacker News thread.

After trying the plugins out, I ran into issues with each of them. The user interface on all of them was, well, not very user-friendly. And then each of them had some critical flaw with creating the static archive. It wouldn’t copy all of the files over. Or it wouldn’t replace all of the URLs for the WordPress installation with the destination URL. Or it would copy over extra files from the theme that didn’t need to be there.

In the end I used one of them that worked well enough for my situation. But I was left feeling that there was plenty of room for competition in WordPress plugins for creating static sites.

Eventually I shuttered my Rails app and went looking for my next project. I decided to take on the task of creating Simply Static. My experiences with the other plugins presented me with my two main goals. One, copy over every file needed (and nothing that isn’t needed) to create an exact static copy of the WordPress site. Two, create something simple enough that you can be up and running in a matter of minutes.

And this is why I get frustrated when my plugin when doesn’t copy all over all of the files that it should. Creating a perfect static copy of a WordPress site is the primary goal.