22nd Dec 2005
Notes On Web2.0 Apps
As I look around for a gig, I’ve seen a number of Web 2.0ish sites lately. Some of them have been by invite, and some are simply “public beta”. This bit is about some not so good patterns I see in those sites. Perhaps they come from a mad rush to get things out the door, or inexperience. Who knows? I should take the time to note that there are a lot of great ideas and implementations out there. I can think of a couple of sites in particular that get a lot of stuff right, but I can’t talk about them yet.
don’t show me your errors
I just got this error on del.icio.us:
![]()
I got that from simply visiting my del.icio.us front page. That’s not supposed to happen. What usually happens for a site out of alpha or beta is that they toss up an error page. Perhaps the error page says “try again in a minute”. You never show a stack trace though. It can be a potential security problem. There’s actually more to that error that’s cropped out of the snap: all sorts of info from the Perl Mason package.
Comment: be sure your development and production machines are set up to report errors in the relevant way - also be sure to turn off debugging code before pushing it to production. You do keep development and production versions of the code separate, right?!
tags are single words
Tags should not have spaces - del.icio.us does tags better than anyone. They keep it simple. They also allow the user to click on common tags in order to add to an input field. This is excellent! It means there’s less chance of having 10 slightly different mispellings of a concept (or konnsep, or consept)
There are a couple of other sites out there that are allowing multi-word tags. Don’t do it man! Put down the whitespace, put your hands in the air, and back away from the complexity and confusion! Now I will note that Technorati gets their tags from elsewhere, and they internally convert spaces to ‘+’.
There are other sites that don’t fare so well. I saved a bookmark on one with the tags “php” and “javascript”. Well, I thought I did. It thought my tag was “php javascript”… then, there was no way to undo that without deleting the bookmark and resubmitting it!
The basic problem is that people are used to typing multiple words without commas, and each word represents a unique tag. del.icio.us has got it nailed. When you get into the “tags can have spaces” mode, you get into more complex code, and you start running into what people expect to have happen, based on their experience elsewhere. It can also bring up the question of “do multiple words in quotes count as one tag?”.
Of course, there’s always counterexamples. Here’s an example of what happens when people expect tags to include spaces. The result isn’t very useful. This is from Flickr:

Got that? Should be “transitstrike”, “redcross”, “hotchocolate”, and “nyc”. This’ll get ya to “red” or “cross”, etc.
massive includes
Cut down on the number of css and javascript include files. I’ve seen sites that have pages that load in more than 20 css and javascript files, and for pages that don’t even have AJAX functionality. It’s bloat. It’s sloppy. It’s a lot of extra hits on the web server, and it’s harder to debug. Clean and consolidate the files that your app depends on, especially if the pages in question are transient. Now for an AJAX app, you can get away with loading more in, because the sheer number of capabilities in one page call for it (making the initial page load worth the wait).
target the 3 main browsers
There are three browsers to worry about: Windows MSIE, Firefox, and Safari. It you get those right, you reach a huge audience. If you target only Windows MSIE, you are part of the problem - you’re forcing people to use something insecure if they want to use your app. If you forget Safari, you are only losing a small percentage of users, but that percentage tends to be the most influential in spreading the word about your site.
Another thing to say about browsers: get the current versions of the main browsers right, and don’t worry as much about the old browsers. That sounds like blasphemy, huh? How dare me! My point is this: old browsers are riddled with security problems, and should not be supported. If you make it easy for people to keep using something that endangers their system, you do them a disservice. It’s better to gently nudge. If your app is compelling, that might be all the reason they need to upgrade.