This is actually an old version of For the latest and greatest, check out the new site.

A Stronger, Faster Wheel

I love reusable solutions. Especially when it comes to web development, solutions that you can abstract well enough that they become multi-purpose save a lot of time, as well as money. But, sometimes, they just don’t cut it.

Lately, I’ve been doing a lot of custom development, and most of it actually replicates functionality that’s already out there. While I love and appreciate all the work that has gone into things like sIFR, SlideShowPro, and CSS frameworks like, the YUI Library, or BluePrint, they’re sometimes too much of a sledgehammer where a pocket knife would be best.

Take sIFR for instance. If you’ve ever looked under the hood, it’s extremely robust. Mark Wubben has baked in a lot of features, most of which users a lot of its users don’t even know about. It does a lot of the legwork for you; it can fit in the most complex of layouts, adjust size and leading based on the developer’s input, allow you to modify content before Flash renders it, and a host of other things.

And yet, as powerful as these options are, I rarely use them. sIFR is built for people that want to use a certain typeface on their sites, but don't know enough ActionScript or JavaScript to do the custom coding. To that end, it needs to be able to accommodate every permutation that any user might want. The tradeoff is that you’ll sometimes get rendering bugs in a solution that does a lot of the guesswork for you.

Most times that I need a solution like sIFR, I have a very specific need. I usually know what color it needs to be. I usually know the size of the text. I don't need sIFR to figure that stuff out for me. Because of this, I can hardcode those values into a Flash file. I usually end up building a custom file that uses the functionality I need—essentially just accepting a text value from the underlying HTML—and discarding the features I don’t.

A wireframework

Another recent example for me applies to creating HTML prototypes. Using a term I adopted from Jeremy, at work I created a set of clickable wireframes for a current client. While CSS frameworks run aplenty, I really need a wireframe framework, one that comes complete with reusable styles for content types like comments, horizontal and vertical navigation sets, search boxes, and robust lists like search results, just to name a few. Instead of starting with an existing library, I decided to just create one from scratch. For me, the time it took to build this from the ground up easily outweighed and amount of code I wouldn’t actually use in utilizing something that already exists. (Check this space soon, as I might actually release that HTML wireframe library.)

I absolutely see the danger in customization. Most times, it’s not very efficient and you often end up rebuilding a lot of things that already exist. But don’t overlook the value in custom solutions. Sometimes, a targeted and specific approach really is the best one.


Jay said:

you're such a tease… :)

No seriously, l'm looking forward to see your lightweight beast.

Posted on January 20, 2009 08:43 AM

Jason Robb said:

Nice, looking forward to it as well.

A wireframework seems like a great idea. It would definitely help me in a few situations. It's one of those things, if you build it yourself, it'll probably have a lot of the sense of style and options you're used to creating.

It'll help you spend more time on the new problems and less on the ones you've already figured out. As Nathan Borror puts it:

Posted on January 20, 2009 10:37 AM

Elliot Jay Stocks said:

I'm in much the same mind. Although I don't have the developer knowledge to be able to code my own sIFR, when it comes to things like CSS (wire)frameworks, I've finally resorted to creating my own.

I'd love to see you release yours when it's ready, as I'm sure many people would. :)

Posted on January 21, 2009 05:32 AM

Tilman said:

I fully agree. It bugs me how much time I often waste while deciding between ready-made and building from scratch. Your point can also be easily stretched to CMSs and even UI decisions.

Posted on January 22, 2009 01:21 PM

Sorry: comments are closed.