Shortening URLs has become a really popular service in conjunction with Twitter and text messaging growing in popularity. I’ve wanted to play around with URL shorteners for awhile now. To be honest I don’t trust that bit.ly or t.co or is.gd will be around forever and while I can’t guarantee that anything I DIY will be either, at least I maintain some control over it (isn’t the web an ephemeral space anyway?).
The first step, getting the domain, was probably the easiest. I don’t want this to sound like an ad, but I ended up using 101Domain and especially with a foreign domain it couldn’t have been easier. Very straightforward, no attempts to add-on tons of needless extras like Godaddy, and a simple management interface. If you hate Godaddy and especially if you’re interested in purchasing a less-common international domain (which is popular for URL shorteners like this) give them a shot. Or don’t. Whatever, but get a domain. One thing to keep in mind is that while you might have that perfect domain picked out that plays on certain letters to form a nice short word, some top level domains have specific restrictions on their usage. For example, you cannot use a .de domain unless you have a residential address in Germany. And some international domains take longer to register and may require more paperwork. Luckily that wasn’t the case with .gs and within 24 hours we were registered and ready to go.
I added the domain to my current hosting with Dreamhost not because I like them at all (in fact due to recent annoyances I’ll probably be shopping for a new host when my annual service with them comes up) but I didn’t want to put a heavier load on UMW Blogs and I didn’t yet know what effect a url-shortener would have on server load.
To handle the URL shortening I’m using a package called Lessn More which is actually a fork of a project started by Shaun Inman called Lessn. It’s straight-forward barebones PHP with a MySQL database to store the shortened URLs. The nice thing about the Lessn More fork is that it also offers the ability to create custom slugs (like a vanity URL ie. umwbl.gs/tim) and uses some character detection to not make difficult URLs by avoiding things like lowercase ls and 1s.
Installation was a breeze but how to get started using it? The admin interface will give you a bookmarklet to start generating your own but for this project I wanted this to be the URL shortener that all of UMW Blogs used for URLs. WordPress has it’s own url-shortener (wp.me) and integrates a “Get Shortlink” button on all posts now with 3.2. I came across an excellent plugin by Matt Wiebe which is perfect because it simply ties in to your Lessn install via a few options setup in the PHP file and quietly switches all shortlinks in WordPress to use your URL shortener. No extra settings screen or tons of options. I put in the information and dropped it in the must-use plugins area and all 5,300 blogs were now powering it.
I don’t yet know how the URLs get generated (when someone logged in asks for one via the admin bar? Automatically by crawling all sites and pages?) but as of this writing with less than 48 hours of usage, the install has shortened over 20,000 links and counting! It’s a great test to the scalability of the software and frankly it’s just awesome to personalize such a large space. If you have a site on UMW Blogs anytime you’re logged in you can grab a shorturl for any page on any of the sites hosted there from the admin bar up top.