Chris Bateman

Of Web Sites and Web Apps

The web was supposed to work like this:

You start with carefully and semantically marked-up content. Everybody can consume this: search engines, screen readers, feature phones, text browsers, etc.

Next you layer on the styles. They don’t need to look the same in every browser; you can add cool stuff for newer browsers, and the older ones will never know what they’re missing.

Finally you add some JavaScript for rich functionality and engaging interactions.

Layers of a peanut m&m

This strategy has been guiding our web development practices for quite a while now. Progressive enhancement for the win, right?

Maybe. Something new has been growing the past few years.

Web Apps and Client-side MVC

The difference between a web app and a web site might not be obvious to the average user, but to a web developer, it’s huge. Web apps are definitely in the minority, but they’re growing rapidly, and we now have more JavaScript MVC frameworks out there than you could possibly shake a stick at.

A new application framework called Meteor was recently released, and the first of their core principles neatly sums up what makes a web app different from a web site:

Data on the Wire. Don’t send HTML over the network. Send data and let the client decide how to render it.

There’s something pretty compelling about about this kind of approach. It makes richer interactions possible, and if you’re building a sophisticated application it might be the only way to stay scalable.  But it’s a decidedly far cry from progressive enhancement.

What to Do

As usual, there’s never one right answer for every situation. You’ll need to think about who your audience is, how they’ll best accomplish their goals, and where you want to go with it. If you want to build the cutting-edge new hotness, an app will be perfect. If you want a site that works on as many devices as possible, progressive enhancement is probably a better approach.

In any case, front-end development continues to evolve as more coding moves from the back-end to the front. Keeping up with it all is tough, so your best bet is to get out there and start building some COOL STUFF.

Tell me what you think: @batemanchris