As I am back to full-time work, I had no time to write some code for Stagosaurus, so I’ve just grabbed some of my old unpublished stuff.
Blog design: URLs
Urls are often underrated, but URL design for any web site is really important. Things tend to get screwed with the dynamic web sites as often technology dictates the url structure (like site.com/post?id=123), but there are ways of avoiding that — url rewrites, etc.
URLs are universal, because any browser has url bar, so it would be smart to use urls for better user experience. Sceptics may say that now with social networks, site aggregators and rss urls are not that important, but I disagree.
One technique about designing urls is namespacing — grouping content by some category, so each category acts like an index or table of contents with links to specific pages under this category.
Namespacing defines an agreement on where your content is, so after URL had been published it is bad idea to change it.
Querystrings (GET params, like site.com/page?sort=asc) are used to specify behaviour of the page. Technical users can easy understand how change things without exploring ui at all.
If your audience is not technical users it would be wise to use html5 browser history api for having urls for everything, especially when you web site is an single page web app.
Also it could be temping to use js for changing state of the app, but having urls doubling that could be also valuable.
Urls should have a semantic meaning and do not look like garbage. Urls are for humans, so they should be easily typed. For example, sticking to using dash instead of underscore saves few keystrokes for user. URLs shouldn’t confuse user, they should say user that he/she is here.
Good url could be writen on napkin/business card from memory (guerilla marketing!).
Also using unicode urls is a not a good idea.
- www or not — does anybody still types that?
- letter casing — you can do that for really long domain names, like IWillGetThatJobAtGoogle.tumblr.com, but for other parts of the url it doesn’t make many sense to me.
- trailing slashes — better to find way to work both with and without them
- ports — nope, maybe for test projects.
- plus/space/dash - dash.
Having user friendly urls have some downsides. First is security — users can (and will) try hacking your website and looking intro img/ or admin/ urls. So putting empty index.htm is a must if you don’t want to configure your web-server everytime.
My URL system
I’ve given some thought about url system for sernyak.com. Basically there are two things here: personal info (portfolio/cv/etc.) and blog. Currently there is only blog there at the boring /blog/.
To make portfolio things more user friendly I’ll be sticking to the following convention:
sernyak.com/ is/web-developer does/web-design does/music made/stagosaurus ua - ukrainian version
Blogging urls are little trickier, because users should be able to access posts from different perspectives
sernyak.com/ blog/ - index page about/blogging — list of posts about blogging 2013/ - list of posts from 2013 2013/09 - list of posts from september 2013
Another thing that sits in the browser url bar is icon of your site. With html5 you can leverage benefits from a tiny icon of your site. Because url changes can go unnoticed, the changes in favicon will grab user attention, especially when you have dynamic content that changes rapidly over time. Some use for this purpose page title (like twitter adds number of new tweets in front of existing title). But you could use both. Or just don’t use them :)