Meta: Transitioning to Slugs

So, I have been very very slack in keeping the open source version of my blogging application up-to-date. In fact, I’m so outdated that almost all of the best features aren’t in the current downloadable codebase. I considered just saying “f it” and not maintaining a public version, and I’ve come to terms with the fact that it’s just a hobby, I’ve never pushed it like my previous apps. However, I think what I’ll do is wait until I finish the latest round of features and then perhaps scrub it and release it.

So, what I’ve begun doing is perousing some of the popular blogging apps out there for some ideas. The first feature I’m rolling out today is “slugs.” I’ve been thinking about this for some time now. I was trying to create pretty URLs without using mod_rewrite or anything that would bind the app to Apache. My old approach was really cool, it was completely dynamic.

For instance, if a post had an id of 1111111111, it would come up like this:

http://blog.adamscheinberg.com/read.php/1111111111/[link].html

The [link] in this case was the title of the post manipulated via a PHP function to be URL friendly with an arbitrary extension of HTML to please search engines.

However, it still had a clunky ID in the title, and it was often hard to remember, making the URL a bit uglier than I wanted. Enter: the slug.

A “slug,” according to WordPress’ documentation, is a “word or two describing an entry, for use in permalinks […] especially useful if titles tend to be long or they change frequently.” Well, there you go. What if, instead of using the ID to look up posts, we used the slug? A few mods later, and – boom! – blog.adamscheinberg.com now uses slugs (where it is able and where one has been specified, at least).

I have about 48 hours, by my count, to determine if I like this scheme before I’ll screw up affect my standing in any search engines, so I’ll report back with the progress. Right now, I’m debating whether the slugs should be forced to be lowercase.