Fog Creek Software
Discussion Board

CityDesk URLs are poor usability!

To Joel:

Why are CityDesk URLs so ugly?


1) The URL doesn't tell me anything about the resulting page except that it's an article.

2) It's way too long to include in print and it's impossible to remember off hand.

3) I would expect that would give me a list of articles but instead I get a 403 forbidden page!

URLs are not only for machine consumption they are also for human consumption.  A lot of web developers forget this and create ungodly long URLs with symbols and numbers.  Users then have to use an external service like just to pass them around!

At my company we have a few (unspoken) rules regarding URLs:

1) They should convey some meaning as to what the resulting page is.

2) They should be as short as possible (but no shorter).

3) They should fit within the navigation hierarchy.

Following these rules, the example article above the URL should be something like:

And the list of articles should be:
(It's currently:


Almost Anonymous
Friday, June 20, 2003

I thought this feature had been dealt with, or perhaps is in the "to be dealt" with queue - I remember Joel mentioning this and seeming a little confused by the request.

I agree with your general point - meaningful urls are user friendly and promote exploration and discovery within a site.

Walter Rumsby
Friday, June 20, 2003

The name issue was resolved in SP1, see

It would be easy to put an index file in each folder as well.

Tony E
Friday, June 20, 2003

CityDesk now removes all non alphanumeric characters and truncates to 25 letters, so an article called "CityDesk URLs are poor usability" would become "CityDeskURLsarepoorusabil.html":

Joel's thinking here was that most other CMS's have indecipherable URL's:

or my favorite:,2097,1-1-1928,00.html

So why would people care if CityDesk had indecipherable URL's as well? Unfortunately, he mis-read his target audience, and when he realized this gave the people what they wanted.
Friday, June 20, 2003

I recently wrote a content management system, similar to most of the others out there.

For articles, I was orginally using /articles/FirstFewWordsOfTitle as a URL. However I found this difficult to remember and type. Now I just say /articles/5. It's much easier to tell someone a number than a string of words that may not make sense.

Friday, June 20, 2003

Moreover, CityDesk is the only web application I've seen that lets you put comments in file names, which don't appear in the final URL. So for example the file name of my Fixing Venture Capital article was (Fixing) V(enture) C(apital) which publishes as VC.html.

Joel Spolsky
Friday, June 20, 2003

... and the reason I don't change the existing URLs is because that would break existing links, which is far worse than having an ugly URL.

Joel Spolsky
Friday, June 20, 2003

Uh, redirect?

"This page has been moved to [url]. You will be redirected in a few seconds." has never bothered me in the least.


Friday, June 20, 2003

Have you seen how many fogX URLs there are within Joel's article archive? I'm sure he has better things to do with his time than set up redirects.

John Topley (
Friday, June 20, 2003

Well, I feel silly now! 

As for redirects, since it is a content management system it should be able to handle the redirects automatically.

A brilliant feature (although somewhat complicated to implement/maintain) would allow you to rename a page and automatically put up the appropriate redirect page.

...and those 403 forbidden pages are still awful!

Almost Anonymous
Friday, June 20, 2003

url's are something for techies,

normal people just look at the title of the link they are clicking on.

click, click ;-)

Michael Moser
Friday, June 20, 2003

That's not true...

URLs are copied into emails and instant messages.

They are used in advertising.

Non-techies use URLs all the time.  The question is, does the website make the easy or hard on the user to do all that?

Almost Anonymous
Friday, June 20, 2003

Does anyone have any insight into Vignette's URLs? For example:,2097,1-1-1928,00.html

They are slightly worse than CityDesk's, but at least they didn't use GUIDs. ;-)

Friday, June 20, 2003

We used to use Vignette at my previous job.  The way their system is designed I'm not sure you would be able to have user-friendly urls as it's a template-driven dynamic system.  Templates are developed in tcl, and are assigned a templateID.  Output can either be cached or generated on-the-fly for every request, and there is some built-in personalization functionality with which I'm not familiar, as we didn't make use of it.  Templates can also be assigned zero (in the case of a library template) to many url paths for which they are responsible -- the path called is available to the template code.

The filename portion of the url is split into four values: an "isCached" flag, a templateID, a user field, and a personalization id.  The user field is basically the space Vignette gives you to pass values without using GET parameters.  In a simple example, you might stick an article ID in there and your template code might use that value for a db lookup.  Of course, if the first value (cached or not) was a 1 instead of a 0, you're doing an active db read every time a request comes through for the exact same article, which isn't exactly efficiency defined.  However, if the template instead takes a user login and returns personal info, you would obviously want to turn caching off.

So, given your example, there's a template (ID# 2097) that's been assigned to respond to the path "/contentmanagement" and told to cache its output.  I would venture a guess that the template code itself is going to further split the user field "1-1-1928" into three vars for whatever purpose.

As far as user-friendly urls go, my experience has been that a url only "needs" to be user-friendly if it's something someone will have to remember and manually type in, such as when one is placed in offline advertising.  Once people are on your site, they generally don't care what the url looks like as they move around.  For example, everyone knows how to get to, but once they're searching for books or music or whatever, they don't generally look up at the url and freak out because they don't know what it's saying.

Joel Fouse
Friday, June 20, 2003

Joel - exactly. My girlfriend was on the phone with her mother the other day trying to tell her the URL's to some sites she was on, getting to the specific page. If only her mother had instant messenger, she could've just IM'd her the URL. It was bizarre and awkward to watch, and I hadn't seen anything like it in years.

I bet most people over 50 are more phone friendly than IM friendly and do pass URL's over the phone.
Friday, June 20, 2003

Joel, CityDesk has templates, it's no excuse. I'm still perplexed about how Vignette which STARTS at a quarter of a million dollars can inflict ridiculous URLs on their customers, but when we tried it in a $79 product they screamed so much we had to change it right away...

Joel Spolsky
Friday, June 20, 2003

"I'm still perplexed about how Vignette which STARTS at a quarter of a million dollars can inflict ridiculous URLs on their customers, but when we tried it in a $79 product they screamed so much we had to change it right away..."

That's easy. At a quarter million, you've got all kinds of geeks involved, all of whom are comfortable with the 'junk'. You've also got the perception that if this is what you get for a quarter million, then it must the either the right way or the only way to do it. At $79 you've got a bunch of non-techies trying to find their way around and many of them have trouble coming to grips with folder structure let alone funky names.

I confess to doing stuff like this all the time. If I'm knocking off a quick little utility for a super-user, I have a clunky interface and all kinds of laziness-based wierdness. If someone else needs the same thing, I put a pretty front-end on it and make everything as clear as possible.

Ron Porter
Friday, June 20, 2003

Buy a Mercedes, you accept that the dashboard layout sucks, because you think "this is a six-figure car, they must know what they're doing"

Spend $5k on the Tucker 2000 and you feel like when you say "the speedometer is the wrong shade of tourmaline" they have to listen.

A lower price gives the impression of increased approachability.


Friday, June 20, 2003

Because there was a clear reason for the URL's to be bizarre? Each character was a flag that meant something, and without it, the web site couldn't work as well as it does.

With CityDesk the URL's were arbitrary, advertised that your site was new (fog00000001.html). Since it was creating static HTML, the URL could be anything - and should be anything the user wants.

A lot of the users are probably used to normal.html URL's, except in forums and other dynamically generated pages.

And to be quite frank, it was a little embarrasing to run a site with fog00000035.html. At least for me, it's not like CityDesk carries a great reputation with it... it screams "I don't know server side code."
Saturday, June 21, 2003

The key sentence in my description was the following:

"The way their system is designed I'm not sure you would be able to have user-friendly urls as it's a template-driven dynamic system."

Now, if you want to say that their system could be designed better, you'll have no argument from me on any number of levels :).  I'm far from a Vignette evangelist (I'll withhold specific criticisms here, as it would take much too long and I haven't the time).  I only wished to shed some light on the structure of their urls.

It may also be telling that, if I remember correctly, their product started as an in-house app (at cnet? I really don't remember), and thus would not have had the same initial design considerations as they might have had were it designed for public consumption from the beginning.

Joel Fouse
Saturday, June 21, 2003

All our sites run a fully dynamic server site content management system will all fixins' and we have great looking URLs...

Article post:

Forum post:

My profile page:

Of course, in version 1.0 we had URLs that looked something like:

But we decided early on to get rid of that.  It was ugly.  Our clients didn't like it.  It wasn't that hard to switch to pretty looking URLs. 

The logical extreme is something like this:

That's the review for the consumer gaggia classic espesso machine written by user laservet.  That's not a static page; that goes off to review database and pulls up the appropriate record.


Wayne Venables
Saturday, June 21, 2003


The thing is, Vignette tracks you as you go through the site. It knows where you came from, what you looked at, and even tailors content to you based on what you've seen.

I don't think your site could do that.

Re: C|Net - They certainly did have a lot of articles on it around 5 years ago. I think they co-developed it with some other large internet companies.
Saturday, June 21, 2003

re: CityDesk setting up automatic redirects

Don't forget that CityDesk is not server-side. So it can't just redirect you to the correct URL. At best, it could upload a page with an HTML redirect, but some people might not like that (I wouldn't, for one).

I just manually create redirect pages for my CityDesk-driven site when I need them.

Darren Collins
Sunday, June 22, 2003

*  Recent Topics

*  Fog Creek Home