97 comments

[ 12.7 ms ] story [ 181 ms ] thread
I think the real issue here is a lack of graceful degradation on the Camper website. Built the right way, their fancy paper.js presentation thing would source whatever content it needs from within the page itself. The only excuse is laziness coupled with an unhealthy infatuation with new shiny technologies. I guess there are some bored people behind this who think anything, even a shoe catalogue, can be revolutionised. And that's fine, but they forgot about the core fundamentals of the web -- the kind I can rely on when loading up lynx and firing off a GET request to see some ... content.
Degradation wouldn't help here - her browser can cope, it just takes an age to download the contents of the web page over a slow link.
To see a "degraded" view though, I would just disable JS. Isn't this viable?
Probably not. It is often the case that a site is built entirely (read meaningfully) in JS. If one wanted to degrade gracefully without JS, one would have to have two sites: JS and Plain-Old-HTML. Now this is not possible, especially for a startup. You have a set number of resources. DRY helps allocate them. If you violate DRY with 2 sites, you're focus is going to be lost.

Now some might say that good web design was violated by make the site dependant on JS. However, as the title shows, this is 2012. My cellphone has the ability to render most JS effectively. The old adage about degrading JS is just that, old. It was in a day before ECMA Script was sanctioned or common on the browsers. It was before jQuery and the like unified the browsers.

tl;dr: JS is ubiquitous and is what the front end, and even the whole app is built on.

the camper website doesn't work without JS.
using a text browser at all feels quite pointless these days, as much as I like them. Even programming website (case in point stack overflow) just don't work at all without javascript and images.
>Even programming website (case in point stack overflow) just don't work at all without javascript and images. //

I just tried with Links 2.6 and it worked fine on StackOverflow.com.

Recent versions of Links support Javascript, so that was helping. However, I've been on Stackoverflow with javascript turned off (noscript) and it is one of the few sites that still renders usable.
Irony alert: Database overload for an article on lightweight websites.
I also find it odd that the masthead for the blog is a 737KB PNG...I don't know why you wouldn't use a JPG - at a high quality level it's virtually indistinguishable and 1/4 of the size.

It's a little pedantic, but if you're going to talk about how sites should be lightweight and then use a sizeable PNG image you're sort of opening yourself up for criticism.

They could at least run the PNG through a png compressor and shave 91kb off the size (tested on pngout) and without any loss in quality. Would save a lot of bytes over time...
She's tweeted saying that was a mistake and she'll fix it.
A good lesson though to remember before calling someone out publicly. We all make mistakes, and the author is not exempt from this rule.
Yeah, but she's a blogger and Camper is a company worth millions of dollars.

I don't expect good design from bloggers. If they say smart things, I'll read. I expect good design from people who theoretically want my money, because it's their job not to irritate me when I'm trying to pay them.

I've avoided buying products from companies who make terrible design decisions. Not even to punish them, just to avoid having to deal with the pre-product bullshit.

The SmushIt image compressor in Yahoo's YSlow quickly became one of my favorite pocket-sized web dev tools.
HTML5 and "fast" aren't mutually exclusive. Plenty of examples where HTML5 mobile sites are plenty fast over 3G like Quora and Asana (just two that I use often).
I don't know what you mean by "fast over 3G" but over here 3G is faster than any available ADSL plan you can get. I sometimes tether to my phone to download some contents when I'm in a hurry. I'm guessing the article is talking about sub-256kbps wifi.
3G is never meant for Live Traffic. There are latency issues and packet losses being wireless. There is no proper QOS guarantees on top of the Wireless Stack.

So never expect good skype experience or any real-time services like - Live search on 3G networks.

For some reason I thought this would be about PDF parsing on the client -- actually it's just somebody complaining that some eCommerce site takes so long to load that it's faster to download and read their PDF brochure offline.

Who cares?

Actually, when I read the headline I thought it was going to be about websites who make you download PDFs to read what could easily be presented in HTML as well (restaurants always seem to have PDF menus, for example).
I care. I make websites and this article made me think some more about page weight vs other trade-offs.

I'm not sure what your comment has added to the debate.

> I'm not sure what your comment has added to the debate.

You're entitled to your opinion. But if your job is to make websites you shouldn't need a random post on a random blog to think about page weight...?

Sigh. Of course I think about page weight and a 100 other aspects of my craft. Listening to other people's thoughts is valuable in weighing up all the different priorities that compete for my attention.
It's 2012, and I'm using a lousy hotel wi-fi shared by 503 guests that takes me back to 1997 connection speeds.

No wonder PDF is the solution. Sure, sites should be optimized to the fullest extent possible and probably even detect connection speeds and offer a low bandwidth version (are there libraries for this already?) when appropriate; but that's a huge amount of work (and money) for what basically are outliers (I wouldn't expect many people to browse the Campers site from a lousy wi-fi in Bangkok)

I am on unshared 12Mbps ADSL, not the fastest around but surely faster than 1997 connection speeds and my experience was similar. Around 20 seconds for the initial loading and 5-10 for each collection. I am glad I wasn't actually looking to buy shoes and just checking the times the content took to load so I wouldn't say this design example is a problem just for the outliers.
That wasn't my experience. It would be interesting to arrive at the bottom of the problem. I take it I'm being served a different page than you are, maybe due to location (I'm not on the US, but then, neither was the article author)
(comment deleted)
It's 2012. Start caching your database queries!

(Looks like the website's database connection has maxed out)

Maybe if Stephanie's site was lighter weight it'd still be up and running :P
I don't know if the camper website is differentiated by region, or if I'm looking at a totally different website (http://www.camper.com ?) but I'm not seeing what she's seeing at all. I see a pretty standard e-commerce website with no "loadings" at all.

It's pretty image-heavy, for sure, but that's to be expected when how else are you supposed to look at shoes?

I see what she is seeing. http://www.camper.com/en/lookbook
Oh yeah, I do see that. But if you just click "Men" (or "Women") then you don't get any of that... which is what I would've done had I been looking for actual shoes.
Bloody hell, I am on super-fast Japanese broadband and that still took about 10 seconds to load.
The slowness has nothing to do with connection speed! I'm on blazingly fast Optusnet Cable Internet in Australia, and it's still incredibly slow on my (fairly recent) Asus laptop.
(comment deleted)
I agree with her. I don't go to most sites to have some 'experience', rather I am there to find certain pieces of information or to use a service. Any technology that hinders me in the pursuit of that purpose, flash intro videos being the typical example, is frustrating and annoying. If the technology is super cool I might play with it for a while, but in the end I am skipping through trying to find what I came for originally.

This particular example annoyed me - I found it glitchy and there was no compelling reason for me to want to look at it. I had no reason to visit the site in the first place, so perhaps my opinion is not that important.

On the other hand, the designers may have done lots of testing, and determined that this design is the one which results in the most sales (or whatever). In any case, technology should never be a substitute for good user experience, not even flashy html5.

This is the most important point: what is the site trying to accomplish? Or better, what are users trying to accomplish with the site? Presumably, the site is trying to sell shoes, and creating an "experience" around those sales might be crucial for Camper. On the other hand, such an experience may be (as in this case) an impediment.

As others have mentioned, the trick is using tools appropriately. But first you need to know for what use cases you are designing.

(comment deleted)
It's never a problem with the technology, it's a problem of misuse of the technology and bad design.
I have a good Internet connection into my home here in the United States (I telecommute from a home office) but I also have 4 kids. The older two have graduated to streaming video to their laptops, but the younger two still prefer choosing titles from Netflix.

When they're all streaming video, I find have the exact same problem on a desktop with plenty of resources. I think Stephanie's message should be applied several ways. We should degrade gently for underpowered devices like phones, but we should also be cognizant of the network capacity of the user.

Coming from the embedded systems world, I know what it is to count every clock cycle and every byte of RAM. I need to remember those techniques when I'm designing and implementing web applications. Thanks Stephanie!

Yes, Google Maps interface comes to mind every time I get reminded about this issue: "Still loading? Use the basic HTML version or click here for help"

Although I wonder if this really is the best solution.

Problems:

User has to explicitly select a change.

Once you change it might go faster, but it's no guarantee and makes you wait a longer total time to get to the first complete view.

Benefits:

It does not depend on directly measuring bandwidth (wasteful and still would take longer)

Relays information about the problem to the user and not just a bad experience.

Although, short of dynamic loading of less intensive interfaces until it ends up rendering a "basic HTML" view, I fail to see one. I haven't seen this implemented though.

(comment deleted)
So let me get this straight. You're interested $100+ shoes but prefer substance and functionality over style only when it comes to the website that sells them?
I only buy $100+ shoes. High quality shoes are so much more comfortable and long-lasting than their cheaper counterparts that their performance and usefulness more than makes up for the higher cost.
I only buy < $40 shoes and I've bought maybe 2 pairs in the last 4 years. High quality shoes are definitely more comfortable and long-lasting, however high price != high quality, even if the marketing and branding says so.

You buy $100 shoes because of style and brand. And this price tag does not always mean quality. There are plenty of expensive brands that fall apart under everyday usage.

I bought some Vibrams some weeks ago (> $100) and they are the best shoes I ever had, a small change of lifestyle. Don't overgeneralize on that, the topic "shoes" is very broad, as is "education".
I got some Vibrams around Christmas and have been wearing them solidly for about 2-2.5 months (since the weather warmed up). The harder layer of rubber has already worn through on the heel, exposing the softer layer. I'm not so sure I'll be getting another pair.
You might consider changing your walking style. Children most often walk middle-footed or even forefooted when barefoot, and this is considered the most natural way of moving. Setting down the rear end of the foot before lowering it completely is a necessity when wearing normal shoes, but it's not natural. Before I adapted fully to the Vibrams my soles even started burning on the heels when I ran longer distances. I read that it's best to just set down the whole foot plainly (or forefoot first) when walking/running with Vs.
I know this will never happen, but how great would it be if we saw a revival of Gopher for this very reason? HTML is clearly going to be for applications in the future, so Gopher could fill in the hole of "just show me the content". Again, won't happen. But I can dream. If only there were a 0-click way to convert a html site to a gophermap/text files.
People don't want to just "see the content".

If you want that, you can just fire up links/elinks/lynx; it, surprisingly, works fairly well even today.

But even the writer of the article didn't want to just see the text - she wants to see the shoes and decide which one to buy. You don't want to see a table with shoes numbers, descriptions and prices when you are shopping; visuals are important, too.

That's why noone is actually using text-only browsers.

If you turn off Javascript and cookies, a ton of sites that serve what at least could be static content and which you don't need to log into simply stop working.

What happened to graceful degradation? Is it not agile enough to expect a server to be able to work at least minimally with any browser?

It is my belief graceful degradation got discarded when the "ditch ie6 movement" began to get full over-blown coverage.
She wanted to "see the content". The "content" just included images as well as text. What she didn't want was the heavy interface.

Maybe a new content type would work... "text/html" would be the application and "text/static-html" would be "just the content"? Browsers would then just have a toggle option of some sort.

What about XML for content and XSLT for display? User could use a variety of XSLTs depending on constraints, viewing conditions.
The issue isn't what format the content is in, but that it's retrieved through client-side logic rather than as part of the query response.

Also, what's wrong with HTML/CSS that is in any way resolved by XML/XSLT? I'm genuinely curious why somebody would put their content into a format with no default, well-understood display semantics.

Maybe I misunderstood how the xml/xslt-paradigm works, but my idea was that you have a serverside api serving up raw data, and the display is controlled by some code on the clientside that can be easily customised. So the server could serve up something like <shoe> <images> <image>foo.com/x.jpg</image> <image>foo.com/y.jpg</image> </images> <description>This shoe is very advanced bla bla bla</description> <fancyintroanimation>foo.com/intro1.swf</fancyintroanimation> </shoe> <shoe> ....

and the client could use the default xslt if they were happy with that, and a custom otherwise.

Or, the designers/developers can make sensible decisions about what to include. The existing tools are fine, and provide plenty of techniques for optimizing to different viewing platforms and environments. The problem is people getting carried away with the whiz-bang stuff that's possible, while ignoring degradation. I can't imagine how XML/XSLT would be any better.
Replying to myself to clarify that I wasn't really being serious. Certainly it would be nice to be able to tell arbitrary web sites "no interface, just human-friendly information". But since they'd all have to implement that, it really wouldn't work better than what is already possible.

This whole thing seems like a Macromedia redux of sorts. Web devs suddenly have a bunch of new tools to play with and some of them go nuts and do stupid things we'll all laugh about in 5-10 years. Of course in 5-10 years there will be something else for short-sighted marketers to abuse...

People don't want to just "see the content".

That is presumptuous: Most users have zero choice in the matter.

Users have a choice: they go to another web site.
So if I like the content of site A, but not the presentation of site A, my choice regarding the presentation is to visit site B?

I think you're confused and you aren't really keeping up with the conversation.

Touchy, touchy. In the context of the OP, if the user liked the shoes but not the website, she could order them on Zappos (for example) instead.
Here's an experiment with showing "just the content" http://www.shopobot.com/shop

Online stores show so little of what they're actually selling - we wanted to try stripping out everything that isn't the products. (using shoes from Amazon as the example here)

I just went on a journey through the remains of gopherspace. Thank you :)
The Camper site is, like many other sites on the web, a bit over-produced. I would much rather have a clear layout and fast loading product pages than a fancy animated-just-for-kicks "experience" that starts to annoy after the first 30 seconds.
It's like flash websites all over again, bring back HTML4!!!!
I think the Camper website needs more animated GIFs, Javascript image rollovers, MIDI music, and a tiled background.
> I saw some nice shoes today at the mall and want to know if they’re available back home (because i’ve learned from experience that region-blocking also applies to shoes).

Region blocking applies to shoes?

The problem with the "design" profession is that in both name and in practice it emphasizes the shallowest aspect of creating everything. I'm not criticizing designers, who are often much smarter than their field and do meaningful work. But design has the same problem as advertising (which I've studied): it's an essential part of making things for people, and in fact it's the first thing that many people experience, yet many of the people who study it never get into the deeper, more essential nature of creating things which make people's lives better.

The result is shit like that Camper site, which is utterly terrible design in every sense. It's not especially successful even as a print layout: it's simple and big, but there's not much intelligence going into the creation, nothing clever that couldn't have been done with a long HTML page and a request to scroll, or even a slideshow with several panels. The only cleverness here is in the actual HTML 5 work, which does not matter to any sane consumer. Yet just like Stephanie said: this is a web site that's bound to win some awards from some jackass web design awards group that aims to further the cause of the web design circlejerk. It's not about good design, or good advertising, or good product brochuredom. It's about the self-satisfaction of people who have been trained to pursue a certain kind of "design" that, rather than designing for users, simply designs for itself.

Very few functional web sites are "beautifully designed" in the sense that this Camper site is designed. There's such a thing as beautiful structure, which is the opposite of this, but which doesn't win as many awards: beautiful structure takes its medium into account, which means that beautifully-structured web sites look and feel like web sites, and are often frill-less save a design which makes perfect sense for their content. Google at its best, when Google's not pursuing a bullshit "Apple-like" fanciness which Apple themselves don't actually pursue. Facebook at its best (they weirdly go back and forth between terrific data visualization and some truly odd design choices). Some sites, like Tumblr and Pinterest, manage to slip in some nice pretty design things while maintaining the great structure which drew their users in initially.

That's not saying there isn't a place for interesting, challenging web design which is more intensive and experimental and less purely functional. But that place isn't on a promo page for sneakers, and it's not where most "designers" tend to congregate. It's stranger and more off-putting than the stuff which most awards try to look for. People playing with the pure form of a web site, seeing how to use structural components for non-structural needs. People thinking about how, fundamentally, the web is different than other mediums, and what that means for creativity online.

The web comic Homestuck mixes animated gifs with lengthy text logs with Flash animation (and interactive games) to tell its story. Sometimes it branches out into non-linear narratives, where several stories are told simultaneously and readers have to navigate through clicks. At one point, it loaded a new page header for every strip, and the header told a separate story from the main comic image, which in turn was telling a different story from the text beneath the comic. Recently, a couple of its "strips" have broken the frame which the comic normally uses, playing with our expectations of what a comic panel ought to be by having events break the panel and spread out onto the rest of the page.

That's the sort of design that's really fascinating – not only playing with the nature of the web, but figuring out how to tell a compelling story that can only be told in the one medium. Mind you, if you go to Homestuck's web site, you're not going to be blown away, even though it's a very well thought-out design that does a number of interesting things with its layout. Nothing about the design says "Look at me! Look at me Design Things!" It just tries to h...

There's really no reason for that camper app to load so slowly. Rendering the initial screen then loading additional assets in the background with a prioritized queue could probably cut the load time by 90%.
> There's really no reason...

Well, no. Of course not. It's not at all about the technical feasibility, or even the ease, of delivering content up front. The web first began with the ability to deliver content up front and it's remained a viable option all long.

The continuing problem is that people (CEOs, designers, developers, et al) get sidetracked and forget what their site is supposed to be doing. They forget what their customers or prospective customers actually want to do: get information; use a service; buy stuff.

Anyone else noticed how unbearable Javascript has made the internet on older browsers?

Google on an iPhone 3G is utter pain

Any Tiger PowerPC Mac is utterly painful because browser JS engines have got so much better that we throw way too much for older browsers to cope with at them.

Should we get off your lawn, too? ;)
This isn't a problem with HTML 5, it's a problem with the Camper site itself.

The Chrome developer tools show 202 HTTP requests, including tons of tiny images, and many non-minified JavaScript files. And there's only about 500k of data, so it's not really a bandwidth problem unless you're on an EDGE connection or something horrible like that.

The big bottlenecks here are round-trip latency and the maximum number of parallel requests made by the browser—if a round trip ping takes 250ms, and you can make 6 requests at a time, then it will take you a minimum of 8.4 seconds to load the page, no matter how big your pipe.

For the sake of comparison, the main Hacker News page takes 6 HTTP requests to load. A Google search results page takes 22.

Camper could fix their site by tiling all their little PNGs into a couple of large PNGs, and merging all their JS into a single file. If they got their file count under 25, they'd load quite quickly.

Exactly right. The number of HTTP requests is ridiculous on this site. Check out the waterfall view on WebPageTest[1]; even though the files are all small, it's another connection for every single one. As ekidd said, CSS spritesheets and combining js/css is the answer.

[1] http://www.webpagetest.org/result/120528_SJ_E14/

Yes, the site itself is immediately at fault, but the author used it as an example of her point, which is that the web in its current state is pathetic.

There are plenty of little things that can make a website faster: image sprites, minified js, etc. Why don't the tools we use automatically handle this?

Why are we so focused on creativity and customization instead of standardization and ease of building? Look at the waves of designers who are crying foul over Twitter Bootstrap and trying to convince us not to use it because they realize that the demand for their services has just been cut in half!

Why are there no tools that provide the myriad of widgets we roll by hand each time? Lists, sliders, progress bars, drop-downs, calendars, etc. Well, there are. There's GWT, there clones of it for python, there's Wicket, and more. But few people seem to use them.

There's more that can be added here, but the point is the web needs much better tools, processes, standardization, and ease of programming.

We're giving people the tools to make the web a bad experience and in general that's been the end result, though we try to avoid those websites.

Why are we so focused on creativity and customization instead of standardization and ease of building? Look at the waves of designers who are crying foul over Twitter Bootstrap and trying to convince us not to use it because they realize that the demand for their services has just been cut in half!

Well, what 'we' are you talking about? As someone who's primarily a back-end developer with some 'front-end' skills (but not necessarily design skills), I'm not at all focused on customization or creativity. Bootstrap has been fantastic, because it allows me to make decent looking sites out of the box.

If/when a project gets to the point where a) it's out of proof of concept and b) the client/team wants better visuals, then we'll bring in a designer or two, and press them to design something around the existing CSS/structure that's there (within reason).

This will piss off the UX people to no end, and in some cases, they may be right to get upset. One size does not fit all, and Bootstrap in its current form doesn't handle every situation elegantly.

What I hope to see is an evolution of Bootstrap and some similar tools crop up to address these UX/UI needs from the perspective of a web 'person' - not a designer, not a developer, but a hybrid role. A role that both understands and implements all facets of the technology (not just advises/consults, but can actually be hands on), and a role with a primary focus on the hands-on. Not photoshop/dreamweaver on one hand, and not GWT/abstractionkits on the other.

That role doesn't quite exist yet, because the tools aren't quite there yet, but as tools like Bootstrap evolve, I think we'll see this. There should be no need to 'mockup' stuff first in Photoshop if the only (or primary) end result is web, but that's still how many projects work.

This is a very good point. Perhaps it is time to think about what a modern web truly should be.

The web has many things going for it. It's no mystery why it's so popular. It's the leading platform to share information and media with the world. It is also a platform for apps that have a unique and very powerful advantage: you can just link to an app and you can use it just a couple seconds later, everything is automatically saved and loadable from any web-connected device, and if you don't want to use it again you can simply forget about it. This is a much nicer experience compared to manually downloading and installing/extracting an app.

However, the web has many serious problems. The web originated in the early 90s as a way to browse text and images, and new things have been haphazardly stacked on top of that over time, resulting in what we have today. It is a lot trickier to make dynamic content for the web than it should be. Due to the limitations of JavaScript, its web API and the web overall, anything scripted for the web browser feels like it's a flimsy hack. People have made much software to try to make things more sane--jQuery, CoffeeScript, GWT, etc.--but they can't solve the deep architectural problems that the platform faces. The time we could be spending focusing on making cool things is lost trying to wrestle with web browsers to get them to do what we want them to do. That's a huge loss in productivity.

We would all benefit if we redesigned the web from the ground-up.

Camper could fix their site by tiling all their little PNGs into a couple of large PNGs, and merging all their JS into a single file.

Or the various parties could implement SPDY or a similar technique, resolving most of the issues without adding maintenance issues.

EDIT: Really? Downvotes? Some people are a little too invested in their hackish, half-measure optimizations.

SPDY - Lack of browser support (Remember this is a consumer site, not a techy-i-already-use-chrome-and-firefox-nightlies site)

Similar Technique...Like what?

Downvotes were probably due to those two things "Not really providing a useful answer" (sorry if that comment offends. Just my opinion).

Firefox and Chrome stable both implement SPDY.

IE users should already be used to lack of rounded corners, full page reloads for address changes, and more things as IE's release policy causes it to fall further behind the web. Not letting them do something else won't change their already poor experience.

Firefox and Chrome both support it, ok.

IE and Safari (Vast majority of desktop computers and a good chunk of macs and IOS devices) don't...

...In fact, I have just re-read your original comment and noticed the "various parties" bit which my brain skipped over before.

My previous belief was that you were saying they should just switch the site to SPDY right now and screw anyone who doesn't support it right this moment which is obviously unworkable.

But since that doesn7t appear to be the case, i have no idea why downvotes were done (unless they made the same mistake I did).

If you want 100% support; just wait for the IETF to finish HTTP/2.0. It may not be the exact SPDY protocol, but it will most likely support a reasonable form of multiplexing, and I am confident all major browsers will implement it. But its probably ~2yrs away.
Out of curiosity, has anyone reached out to camper and told them? It would be interesting to see if a dialogue can be started with the company to see how they would react.

EDIT - Sent em a tweet. Lets see what happens

I like the idea of a world that dynamically responds to you better.

Are you on a speedy networked desktop? You get the bells and whistles version. Are you own a tablet with less bandwidth? We note this, and load the appropriate version. Are you on a mobile phone on the move? We load the mobile edition which is about efficiency and speed. The user doesn't need to make decisions, but the site architect should be seamlessly making them behind the scenes.

Also, I'd love it so all versions to have the same content, optimized for all homes. If I visit another mobile/tablet site that reduces content for "my convenience" I will start punching web developers. :)