The [data-js] API for behavioural-binding; stop using selectors in your JavaScript

Selectors in JavaScript are bad. The bridge between the DOM communicatin...

FireShell, fiercely quick front-end boilerplate and workflows

Built for the modern developer. For teams and the individual, encouragin...

Building out an HTML5 experience with Intels HTML5 Hub, for Rolling Stone magazine

Back in June this year, I was approached by Intel and Rolling Stone maga...

Echo.js, simple JavaScript image lazy loading

I’m currently working on a project for Intel’s HTML5 Hub in which I requ...

Hacking the HTML5 <video> element with Suave.js

Suave, for elegant HTML5 videos (how they should have been). Suave was b...

Using Grunt and Chrome Workspaces for in-browser development

After some great interest in why I ditched Sublime Text 2 for the day to...

Psswrd, the show/hide password JavaScript plugin

Show/hide toggling for password inputs. Psswrd is a neat little script I...

Is it time to drop jQuery? Essentials to learning JavaScript from a jQuery background

jQuery has been a godsend to pretty much all of us front-end developers ...

Re-engineering the jBar plugin with Immediately-Invoked-Data-Expressions

Earlier this week I wrote about IIDE, Immediately-Invoked-Data-Expressio...

Revisiting SVG workflow for performance and progressive development with transparent data URIs

A few months ago I covered a range of SVG techniques that proved to be a...

IIDE, Immediate-Invoked-Data-Expressions, data-init and using HTML5 to call your JavaScript/jQuery

There’s something that’s been at the back of my mind ever since I’ve sta...

Simple HTML5 data-* jQuery tabs, markup free and relative to their container for ultimate re-use

One of my favourite additions to the HTML5 spec is data-* attributes, th...