Tim's Weblog
Tim Strehle’s links and thoughts on Web apps, software development and Digital Asset Management, since 2002.

Simpler DAM UI: Single page Web app?

One of the more technical decisions when building our simpler DAM system user interface: Should we build it like a Web site, i.e. as a set of interlinked but independent Web pages? Or as a fancy, Ajax-powered “single page Web application” that you load just once, with all further interactions taking place within the same page?

The last times we had to decide this, we went with what was fashionable: DC4 lived on a single page that consisted of various frames. DC5 was a Web site with different pages. The current DC-X UI is a single page app (SPA).

Pros of an SPA: Faster and smoother, no need to wait for a full page reload (and JavaScript, CSS, HTML don’t have to be parsed again). State (like “menu bar expanded”) can be kept in local variables, no need to pass it between pages. You can push notifications onto the page, knowing that the user will spend some time there. Read: Matt Johnston – Let’s make a single page Web, or Steve Souders – Keys to a fast Web app. It’s also interesting how Twitter and Basecamp built their Web apps.

Cons: Way harder to develop. Takes longer to load initially. More fragile, possibly breaking on clients with little RAM or CPU power. Issues with links and browser back/forward buttons. SEO broken because search engines won’t run all your JavaScript. Read: Swizec Teller – Single page web apps: the worst of both worlds.

For a good overview of the pros and cons, see Steven Willmott – The Death of the Web page.

My take: It’s better to start with regular Web pages, because their development takes much less time (enabling an agile, incremental development process). Moving to a single page app later is totally possible (the other way round is way harder). And initial load time as well as working links are important for casual usage (they don’t have the DC-X UI open all day) and Web interoperability.

What do you think?