Crunchable: Project Bloo

Crunchable looked something like this when it ran on Ruby on Rails.

I believe this is an actual vintage screenshot I took in November 2005; it ended up being preserved as a background layer in a Photoshop file I used during my first redesign of the site while I was transitioning in as editor. I think the fonts look pixelated because I was working on an ancient computer that did not have the now-ubiquitous Georgia font installed, and it substituted a crummy version of Times instead.

Still, you can see the classy, dark, book-esque, minimalist look Chris Klimas was going. It was a radical departure from what came before, obviously. Totally new layout, totally new color scheme, totally new visual language.

Unlike the last time Chris changed the content management system, this time he didn’t bother copying over the entire archives into the new system. Instead, there’s a tiny link labeled “old” in the upper right that took you to the WordPress version of the site.

Ruby on Snails

I knew almost nothing about designing a website in 2005. But if I had known anything, I would have been hearing a lot about Ruby on Rails.

I still know nearly nothing about it, except that it’s a Web application framework for the Ruby programming language. In short, it was a way to build dynamic websites — like Crunchable.

Chris Klimas described the experience like this:

The whole Ruby on Rails thing was ill-advised but I didn’t know it. I had been reading a lot of buzz online about it and got what was one of the first books about it. There were a ton of great concepts in it that I still use at work every day. […]

I was eager to do a project with RoR and it worked pretty well — on my own laptop. When it went live, it crashed and burned.

Dreamhost [Crunchable’s Web hosting provider at the time] was just not really equipped to run a RoR app — their bread and butter was PHP, so they didn’t put much time into supporting it.

If you didn’t fiddle with the config, it ran insanely slow… like 45 seconds to serve a basic request that hit the database like twice.

This means an average page on Crunchable would take the better part of a minute to load, leaving readers staring at blank screens for a looooong time.

The joke I then heard online was Ruby on Snails.

There were directions on how to make RoR faster on Dreamhost that worked ok, but there were tons of mysterious crashes. I think it was also that RoR was fairly immature itself at that point, too.

I again admit my ignorance here, but if Wikipedia is correct, the first fully-set version of Ruby on Rails was only a few months old when Chris was working with it.

Doing the RoR version was a way for me to try crazy ideas out that wouldn’t have flown at work. It wasn’t really a good move for Crunchable. […] 

I think at that point my desire to do Crunchable was pretty much gone.

And that’s where I came in.

When Crunchable left WordPress

By the middle of 2005, Crunchable was in pretty rough shape. Or, more precisely, editor Chris Klimas was in pretty rough shape.

He’d been trying to push out updates at least once a week for four years. Less than a year earlier, he (and Crunchable’s writers) had re-thought the whole model of how and when Crunchable would publish stuff, and he’d redesigned the whole site in a way that would accommodate that model. (In other words, he’d brought Crunchable to WordPress and away from its file-folder-method of content management.)

But it didn’t work. After a brief bump, submissions went back to being as scarce as ever. So Chris decided to try something new — two somethings, actually:

  1. Another new publication schedule, now featuring monthly issues
  2. Another redesign of the site, this time using another new content management system

(After I later took over the site, I found myself repeatedly employing very similar methods to deal with the same problem as Chris. More on that later.)

On July 1, 2005, Chris posted an intensely personal and brilliantly interactive/clickable essay describing why he started Crunchable, what it had meant to him, and the struggles it was facing. And then he converted the site to run on the latest, up-and-coming framework for Web design: Ruby on Rails.

Spoiler alert: The monthly issue format stuck around. Ruby on Rails did not.

Halcyon was Crunchable’s final WordPress theme while Chris Klimas edited the site.

Its visual similarities to its predecessor themes — Wintergleam and Sidewalk — are pretty obvious; it even shares Sidewalk’s basic color scheme. Under the hood, it’s also very similar to Sidewalk in how the template files are set up. The main difference is that the graphical elements are a little fancier: Note the gradients (i.e., how the color fades from light to dark) on the title bar and background, in addition to the shadow on the right; it’s a nice anticipation of some of the Web 2.0 design trends that were about to flourish.

Also like its predecessors, it took very few changes to the templates to make them functional again. Like the other “historical” WordPress screenshots, I took this one over the summer.

Sidewalk was Crunchable’s second WordPress theme. Chris Klimas writes:

Sidewalk was so named because I was going for a walk one evening and I really thought the colors around me were nice; I doubt it really measured up to what I imagined.

Maybe not, but I still think it holds up pretty well.

Visually it’s very similar to Chris’s Wintergleam theme, with a few colors traded out; no longer do we have the orange-and-blue scheme that echoes Crunchable’s original design. There’s also now some depth to the page with that drop shadow on the right side.

Under the hood, it’s worlds apart from Wintergleam. Where the old template had a single index.php file to handle all of its pages, Sidewalk has splintered that into the more current WordPress templating scheme of separate files for the header (header.php), the footer (footer.php), the index and archive pages (index.php), the single-article pages (single.php), and so on.

Also like Wintergleam, it took just a little bit of modding to get the old template functional again.

The birth of Snackable

I can fly in my dreams. I remember the first couple times it happened. The funny way you learn things in dreams without realizing you’ve learned something new — the same way you understand the situation without any narration, without anyone explaining it to you

So begins Crunchable’s very first “Snackable” post, published Dec. 24, 2004 and written by Chris Klimas.

The start of Snackables was part of a new concept for Crunchable. Chris had always solicited and edited all of the articles, which were published weekly, or even twice weekly at some points. This was a grueling schedule. But switching to WordPress opened up some new possibilities — namely, that trusted Crunchable contributors could start publishing their essays on their own, without Chris having to do anything.

I wasn’t there for the decision, but in retrospect I’m sure Chris wanted to make the publication process as easy and frictionless as possible for the writers. Because he desperately needed to do something that might get people to start writing for the site again. We writers were growing up, settling down in lives and careers, and getting us to keep Crunchable supplied with content was becoming harder and harder. (This would become a recurring theme, as you’ll soon read.)

So Chris gave each writer a login to the Crunchable WordPress setup. And when we signed in and poked around a bit, we saw two main categories:

Edit Me Please: Material ready to be looked at by the editors.

and

Snackable: Stuff that you write on the fly; isn’t edited; appears instantaneously.

It was a really good idea, actually. Rather than having writers e-mail their stories in, possibly using attached files that might or might not open on Chris’s computer, all contributors could write all of their stuff directly into the content management system! And for short, bloggy writing, they could even publish it themselves, right onto Crunchable’s homepage, and get the instant gratification of seeing it online immediately.

It was a really good idea in concept, anyway. Despite setting Snackable up to work just like a group blog, few of us writers took to it that way. Despite a strong start, Snackable submissions dropped off precipitously within about three months.

I’m also not sure how many people really took advantage of the type-it-yourself format. I know I submitted my first Snackable that way, but at the time I bet Chris almost wished I hadn’t — I vaguely recall e-mailing him in a panic because my essay somehow went live to the site before I was ready, and then the title was wrong, and then there was something else. I hope most writers didn’t require as much hand-holding as I did, but I doubt I was the only one who needed some help.

So Chris ended up killing off the Snackable concept after about half a year, when he switched Crunchable to a new content management system and a whole new publishing format, in the hopes of finally remedying the dearth of submissions.

But Snackable didn’t die completely — when I ended up in charge a little later, I decided there were things about Snackable that were worth resurrecting. (More on that soon.)

I give you Wintergleam.

As far as I can tell, this is a pretty good approximation of how Crunchable looked when it first moved to WordPress.

Like pretty much all blogging platforms, WordPress lets you select the “theme” for your blog — meaning, you determine how you want the website to look, setting up the template for how every single page should appear, and then WordPress fills in the blog post’s text in the middle. I suspect there were at least a few ready-made, free templates available for download even in WordPress’s earliest days, but Chris Klimas designed all his own themes.

While researching for this history project, I dug through every old computer and disk I could find in my house, looking for Crunchable’s earliest WordPress code. I finally found the Wintergleam theme files buried deep in a compressed folder from when I had backed up the site, probably in 2006 or 2007.

I can’t swear that Wintergleam is actually the oldest of the three templates I found in there, but I’m pretty sure it is. The clues are in the code itself. As WordPress developed, its setup for page templates became increasingly complex: Each page or part of a page was contained in a separate .php file (header.php, footer.php, single.php, author.php), and the whole package was assembled on the fly anytime a user looked at an article.

But Wintergleam uses just one template file! Just ONE! And in that single file, it contains all the html it needs to generate every single kind of page on the site. It’s breathtaking in its simplicity and directness.

It’s also a quantum leap forward from Crunchable’s original design, which as I noted in an earlier post, used no CSS and relied on good ol’ HTML tables for all of its layout. Wintergleam makes extensive use of CSS and uses its layout workhorse, the float property. (In brief: Designing using tables is like formatting a spreadsheet, where all the blocks have to be laid out in a grid. Float, on the other hand, just makes stuff slide to the left or right, and the text or other stuff on the page flows around it.)

The other truly remarkable thing about the old Wintergleam template: It still works! The image here is a screenshot of the actual live Crunchable site from just a few months ago, with the old Wintergleam template up and running again. It’s not perfect, of course: I had to make a few modifications in the code to account for coding that WordPress has deprecated and replaced over the past eight years or so, and I updated all the links on the right side of the page. But it was truly striking how little needed changing.

When Crunchable went WordPress

Chris Klimas had been organizing all of Crunchable’s articles in file folders for more than three years before he decided it was time for the site to switch to an actual content management system — namely, the WordPress open-source blogging platform.

The change wasn’t just technical — it was also part of a reimagining of how Crunchable would work, and it resulted in some parts of the site that are still with it today. As he described it in a recent note to me:

Wordpress seemed like a big deal, there were other blog platforms like Movable Type and TextPattern, but Movable Type required money (probably not that much in retrospect, but I was used to doing everything for free) and TextPattern was a bit obscure. It seemed worth it to be able to include a site search and autogenerate author profile pages

It’s hard to imagine this now, but when Chris started Crunchable back in late 2001, WordPress didn’t even exist. Its first version went live in 2003, and Crunchable was using it by the end of 2004.

I’ll cover most of the technical stuff in another post, but the basics of WordPress was that all of the articles would be stored now in a database (a MySQL database, if you want to get technical) instead of in file folders, the new system would allow for more sophisticated article templates, and, as Chris noted above, it would let readers search for articles and create author pages listing everything each one had written. Plus, WordPress was (and is) free, and it’s easy to modify because it’s open-source and written in the relatively simple php programming language.

To make this change, by the way, Chris had to convert each and every Crunchable story published since 2001 into a new WordPress post. I suspect he either wrote or found some code to import all of them automatically. Still, it’s daunting to think about.

What Chris didn’t mention in that quote was that the move to WordPress also was the birth of Crunchable’s “Snackable” posts, and a new idea for how the site would get and publish content. More on that in the next post.

The designer speaks

I remarked many months ago about how Chris Klimas must have organized all of Crunchable’s content when he first started up the site. At the time, I speculated that he either “set up a ‘content management system’” to manage Crunchable’s growing library of articles, or that maybe he simply “chuck[ed] it all in alphabetized folders on a server somewhere.”

That second explanation turned out to be closer to the reality than I had imagined. After I posted that, Chris sent me a note about how he actually set things up, and he agreed to let me excerpt from it here:

It’s actually not that exciting nor mysterious.

I picked up either from college or early work that you could do a super simple version of templating with Apache include directives. Basically, you can define a header and footer in another file and have Apache (the web server) mix them in for you. 

“Templating” in the sense that all stories on Crunchable should have exactly the same stuff before and after the story — the site logo, the sidebar, and so on. Apache is the software that runs on the server (the Internet-accessible computer where Chris’s code files lived); Chris told the software to grab the same header and footer and stick them on every page, before and after every story.

So I wrote the HTML for the article (think I basically did lots of find/replacing to insert paragraph tags, etc.) and sandwiched the content between predefined content.

This is interesting to a geek like me for two reasons. The first is that now his initial means of organizing Crunchable’s content suddenly makes sense — it is, in fact, revealed in the URL structure:

www.crunchable.net/02/0420.shtml

He had a folder on the server for each year (“02”, in this example), and inside were a bunch of html files — one for each story, with a filename that indicated its publication date (April 20, in this example).

The second reason it’s fascinating is that, without knowing it, I created some pretty similar systems four years later when I was rebuilding Crunchable. Even though Crunchable had an actual CMS at that point (the blogging platform WordPress), I didn’t use it to manage any of the pictures in stories. Instead, I used a system of file folders and names like Chris’s original setup. I still use it today.

Moreover, WordPress has never quite accommodated the subtleties of HTML that let articles appear the way I want. So for years I’ve been writing every single article as HTML, doing “lots of find/replacing to insert paragraph tags” and so on before putting it into WordPress. Plus ça change.

Picking up the pieces

So, remember when I set up those goals of stuff to finish by the end of June? Yeah, well, about that …

There were family things that came up, and work things, and personal things. Suffice it to say that Life intervened.

And, in fact, other things with Crunchable intervened, too. I spent a good chunk of August and September nailing down the final details for the Crunchable Colloquium, which turned out to be a great event back at Washington College. To coincide with that event, I also rounded up a bunch of Crunchable writers who graciously agreed to help me start publishing Snackable pieces again. Between the Colloquium and the renewed Snackable schedule, I’d say it’s been a pretty good way to mark the site’s 11th anniversary.

So, now, back to Project Bloo. If the main goal here is to get the site redesigned, I have a lot of work to do. One of the challenges I hadn’t anticipated is how hard this design is to do piecemeal; each piece of the picture connects to all the others. I’m starting to think my best bet will be to take a few days off work and do a coding “sprint” to get a bunch of this done quickly.

In the meantime, I have a lot of conceptual work I should be doing, and I really need to finish up this history project I’ve started. Arguably, this history thing is just procrastination — okay, it definitely qualifies as procrastination — but it’s still useful. In addition to documenting how this site came together over the years, cataloging this history has already given me a lot of design ideas. It’s also going to get increasingly useful, as I start thinking about how I set stuff up back in 2006 and how I refined that model over the years; I need to know how much of that stuff I can (or should) keep, and which parts need to be junked and replaced.

So I’ll get cracking on those history posts and see if I can’t wrap those up in the next week or two. Plus, I ought to write here about the other stuff that’s been going on behind the scenes at Crunchable: We’ve shifted some of the staff responsibilities around and have been having some really productive conversations about where we want to take Crunchable over the next few months.

Much more to come, very soon.

Architected Theme by Andrew Brinker © 2011.    —
      with modifications by Michael Duck