However, getting rid of the /photos prefix would be a terrible improvement.
Having the /{username} at the root of the routing logic means that every URL should either query the user database for a match or use /{username} as a catch-all fallback if no other patterns match. But this makes resolving real 404 pages much more expensive.
The shift from URLs accessing resources on file systems to more abstract resources (implicitly HTML unless the headers said otherwise) occurred around 1999/2000. Suddenly we were all doing it once we’d figured out the necessary Apache directives. It wasn’t just Flickr, although it and its APIs were a good example of clean URL design
> I would also try to add a human-readable slug at the end, because…
No? Because what would it be based on and if you edited the thing that it's based on then the URL would either change, or get out of sync which woudl suck. You could ignore the suffix meaning flickr.com/mwichary/sets/72177720330077904-<everything-past-the-previous-dash-is-ignored> I'm not sure if that would be a positive, although I guess S.O. does something like that. The issue is other sites really want to know if it's a link to the same resource or a different resource. And while you could redirect to the new one that just makes more work for everyone.
> I would get rid of /photos
I wouldn't because then you'd had have https://flickr.com/settings but that would not be a user named "settings" and the same for every other alternate purpose URL
> Alternatively, I would consider getting rid of numerical ids altogether and relying on name alone. Internet Archive does it at e.g. archive.org/details/leroy-lettering-sets, but that has some serious limitations that are not hard to imagine
They don't rely on title alone, it's a separate identifier. You can set it to anything and you can't change it afterwards but you can change the title.
Flickr deserves a lot of praise for a number of technical advances that I wish had seen wider adoption.
Their API was one of the first and honestly still one of the most enjoyable to actually use as a developer. It's still full of incredibly interesting API calls that you wouldn't expect from it unless you read carefully. Did you know, for example, that flickr API will provide you with the bounding box co-ordinates of different types of places? From a neighbourhood all the way up to a continent?
They implemented the Where On Earth ID (WOEID) which was a super useful way of disambiguating different places that shared latitude and longitude (for example, being able to disambiguate the Sydney Opera House, Circular Quay and Sydney Harbour which all can potentially share the same lat/long co-ords).
They implemented machine tags which are tags in the form of -
namespace:predicate=value
Which, when it was implemented by other sites with machine tags allowed you to get and group all kinds of interesting combinations of content.
Yeah, honestly flickr had some incredible tech the was so much fun to explore and use. That their vision of what the web could be wasn't the one that won is one of the great losses of the web IMO.
> (Alternatively, I would consider getting rid of numerical ids altogether and relying on name alone. Internet Archive does it at e.g. archive.org/details/leroy-lettering-sets, but that has some serious limitations that are not hard to imagine.)
I could try to imagine these limitations and how the Internet Archive overcomes them, but I'd prefer reading about it.
I agree 100% with the author, clean, easily readable and well structured URLs make the web a better place. URL is a hierarchical structure as introduced in the RFC1738 by a guy you might have heard, Tim Berners-Lee, the inventor of the World Wide Web :-)
https://www.rfc-editor.org/rfc/rfc1738
Easily readable URLs is something I learned in the 90s and I still try to enforce in everything I create.
Unfortunately things are going in the opposite direction with media platforms creating an encoded blob impossible to edit by hand so that you (or a tool) cannot strip tracking etc.
Flickr was a hero, then yahoo/smugmug killed it. It's still there, but along the way all changes reduced it to an also-ran. It's still a nice tool, but I just don't see myself using it again. The URL scheme, as neat as it was, I never noticed or cared to hack at. I just wanted to upload photos.
I don't know how much Flickr is used these days, but I remember it was quite popular some 15 years ago. I decided to search around, and discovered that it is a treasure trove of photos from the period 2005 - 2015, and incredibly easy to search / filter.
Internet archeology is something I've always found fascinating, and I don't think people realize how much data has been lost after we moved to the modern "big tech" internet of today. So many data hosting services disappear back in the mid/late 00s, and with that, the data too. After social media exploded, many just stared storing all their photos there.
The flip side is enumerable IDs. Back when I was scraping a site for a side project, sequential photo IDs were basically a free sitemap. YouTube's random-ish IDs aren't just branding — they at least make bulk harvesting annoying.
I thought Photobucket did it better, with the exception of having to know which server an individual's bucket was on.
It's been a long while, but if I recall, the url schema was something like a00.photobucket.com/albums/username/someimage.jpg
But what was really cool about it was that you could change someimage.jpg to someimage.png and Photobucket would serve a PNG instead. Or you could change someimage.jpg to th_someimage.jpg and Photobucket would serve a thumbnail of the picture. It was very cool.
Strange, because I always remember Flickr having horrible UX. You could never just open an image file directly; if you tried, Flickr would always redirect you to a page which obscured the image behind an invisible layer which obscured pointer events such as right-click.
Can't say enough good things about flickr. Those people nailed it in 2004 (I've been a paying subscriber since their first year) and everyone else has been making bad copies ever since. Tagging, friends (pretty much inventing social media without any of the diabolical dark patterns), full-resolution archival storage, a solid API, all over two decades ago. I'm frankly embarrassed for things like Instagram, it's like they're not even trying.
Score Breakdown
ND
PreamblePreamble
Content is technical essay about URL design; no observable signals regarding human dignity, freedom, or rights principles.
ND
Article 1Freedom, Equality, Brotherhood
Equal rights and dignity: No observable signals in technical design essay.
ND
Article 2Non-Discrimination
Non-discrimination: No observable signals in technical design essay.
ND
Article 3Life, Liberty, Security
Right to life, liberty, security: No observable signals in technical design essay.
ND
Article 4No Slavery
Slavery prohibition: No observable signals in technical design essay.
ND
Article 5No Torture
Torture and cruel treatment prohibition: No observable signals in technical design essay.
ND
Article 6Legal Personhood
Right to recognition as person before law: No observable signals in technical design essay.
ND
Article 7Equality Before Law
Equal protection before law: No observable signals in technical design essay.
ND
Article 8Right to Remedy
Right to effective remedy: No observable signals in technical design essay.
ND
Article 9No Arbitrary Detention
Arbitrary arrest/detention prohibition: No observable signals in technical design essay.
ND
Article 10Fair Hearing
Right to fair trial: No observable signals in technical design essay.
ND
Article 11Presumption of Innocence
Presumption of innocence: No observable signals in technical design essay.
ND
Article 12Privacy
Privacy protection: No observable signals in technical design essay.
ND
Article 13Freedom of Movement
Freedom of movement: No observable signals in technical design essay.
ND
Article 14Asylum
Right to asylum: No observable signals in technical design essay.
ND
Article 15Nationality
Right to nationality: No observable signals in technical design essay.
ND
Article 16Marriage & Family
Marriage and family rights: No observable signals in technical design essay.
ND
Article 17Property
Property rights: No observable signals in technical design essay.
ND
Article 18Freedom of Thought
Freedom of thought/conscience/religion: No observable signals in technical design essay.
+0.27
Article 19Freedom of Expression
Medium F: Framing information accessibility as valuable (keyboards, editing, sharing) P: Content is published and freely accessible online A: Advocacy for clear, editable URLs as user interface principles
Editorial
+0.20
Structural
+0.25
SETL
-0.20
Combined
ND
Context Modifier
ND
Content discusses accessibility of information through URL design and shareability. Mild positive: celebrates transparent, editable URLs that facilitate information access and sharing without technical barriers. Free online publication supports access principle.
ND
Article 20Assembly & Association
Freedom of assembly/association: No observable signals in technical design essay.
ND
Article 21Political Participation
Right to participate in government: No observable signals in technical design essay.
ND
Article 22Social Security
Social security/economic rights: No observable signals in technical design essay.
ND
Article 23Work & Equal Pay
Right to work and fair conditions: No observable signals in technical design essay.
ND
Article 24Rest & Leisure
Right to rest and leisure: No observable signals in technical design essay.
ND
Article 25Standard of Living
Right to adequate standard of living: No observable signals in technical design essay.
ND
Article 26Education
Right to education: No observable signals in technical design essay.
+0.22
Article 27Cultural Participation
Medium F: Framing URL design as worthy of recognition and credit A: Crediting Flickr design team (seeking Cal Henderson) for inspirational work P: Content freely accessible, enabling cultural participation
Editorial
+0.15
Structural
+0.20
SETL
-0.25
Combined
ND
Context Modifier
ND
Article discusses participation in cultural life and protection of authorship. Mild positive: recognizes and credits design contribution, seeks to properly attribute intellectual work, demonstrates respect for designer's role in cultural development. Free publication enables participation.
ND
Article 28Social & International Order
Right to social/international order: No observable signals in technical design essay.
ND
Article 29Duties to Community
Duties to community: No observable signals in technical design essay.
ND
Article 30No Destruction of Rights
Prohibition of activity destroying rights: No observable signals in technical design essay.