step-stool.io

As of a couple hours ago, my newest personal project has a website. Step Stool, the static site generator I’m writing in Python, now has a home at step-stool.io.1 If you visit the site, you’ll see that, while it looks nice (at least: I think it does), there’s not much to it and most of the links don’t go anywhere. The link that does go somewhere tells you that the project for which the website exists doesn’t actually have any functioning code, yet.2

(That gorgeous logo? Designed by the absolutely brilliant Cameron Morgan.)

So why is it live? There are a few reasons. First, the whole point of the project is my having fun with programming. Web design may not be directly involved in finishing Step Stool, but it definitely scratches the fun itch just as effectively. Second, and more importantly, it’s allowed me to get some time in with other technologies I’ve been interested in for a while – specifically, SASS. I’ve been frustrated with all the problems SASS solves in CSS for a while now, and I’ve known I wanted to just go ahead and learn it for a while. I just haven’t had a project where it made sense – until now.

Third, I’ve never developed a whole project in public before. This whole thing is open source (I’m using the MIT License because I think it’s one of the most actually free licenses3), and you can watch the development as it happens on the Bitbucket repository. Since I’m developing it that way, I decided I might as well let the website development be public, too – hilarious missteps in my use of SASS and so forth included for public amusement. I doubt anyone will particularly care, but if they do, it’s here to see.

Fourth, and perhaps most importantly, it’s motivation. Putting the site up helps me want to get this project done; it’s a great big sign that says, “Somebody is working on this!”4 Given the size of the web, of course, it’s mostly a great big sign to me, but since that’s the point, I trust it will do its job effectively.

Along similar lines, I’m actually writing the README file first. In fact, that is the only thing of any substance on the repository at present. For a project like this, I think README-driven development is a perfect fit: it’s one of the fastest ways to figure out what you want to do and how you want the pieces to fit together. It’s sort of an Agile way of making some architecture and design decisions right up front. It also means that, when I’m done, I should actually have at least some documentation that is in reasonably good shape – the Achilles heel of most projects like this one, in my experience.

Going forward, I plan to finish the basic framework for the site in the next couple weeks, including adding some content for the “About” page. This includes making a substantially different layout for those content pages, for obvious reasons, as well as getting all the responsive pieces fitting together nicely so that the site will present decently on phones and tablets (and ginormous 27″ monitors, for that matter). Along the way, I’m going to keep working on picking up some of the other new technologies I’m interested in learning. In particular, I intend to write any and all Javascript for this project in CoffeeScript and any animations/DOM manipulation/etc. will most likely be accomplished using Zepto.js, an library that is API-compatible with jQuery but much smaller.

Finally, once I have the static site generator completed, one of the first projects I’m going to undertake is rebuilding step-stool.io in Step Stool. Since I’ll already have all the CSS, it should be straightforward, but it’ll make a nice demonstration of the non-blog uses the tool will support. It isn’t generated by Python yet… but it will be.

1. Fun story: .io domains are expensive. This ended up being my birthday present from Jaimie this year. Yes, I’m that much of a nerd. But really: for a static site generator, I don’t think you could possibly improve on .io for a domain.
2. A setup.py file with nothing to set up doesn’t count.
3. Unlike the GPL, which is free only for a very bizarre definition of the word “free.” But that’s another post for another day.
4. The fact that I sunk my birthday present into it is a similarly encouraging bit.