Short URLs that will never ever break

View the Project on GitHub lucasgonze/shurl


URL shorteners are full of breakable components, so you can't be confident your links will work. Shurl maximizes reliability by getting rid of fragile parts.

  1. No database. (Shortened URLs are stored in a web server configuration file).
  2. No web form. (To create new links, a client-side script SSHs into the web server).
  3. No scripts. (Once a short URL is created, it is dereferenced using only a vanilla web server).
  4. No attack surface. (System architecture is the same as a bare static web server).

Console UI

Shurl may also appeal to people who like the Unix shell: the front end is a client-side console app named shurl.

A typical session looks like this:

$ ./shurl 
Usage: ./shurl [LONG URL TO SHORTEN]
$ ./shurl

This app must run on the web server used to host shortened URLs. It should be run via ssh, and should not be reachable via the web.

No Database

Under the hood, the Apache mod_rewrite file is used to store rewrites. There are no scripts made accessible to the web, and there is no database. This simplicity of design should make the system very durable.

Short URLs in this system are random strings, rather than serial numbers, so they are hard to spider.

Private and Autonomous

Who would want this functionality? People who prefer to own their data and run their own software. People who want a personal cloud. People who want privacy for their shortened URLs.

Cloud computing today typically means that we have to hand over our data to big companies who decide which features they give us (and sometimes force on us), and who can and do unilaterally change their terms of service on us whenever they like.

What if instead, we could each have our own, personal cloud? Where we decide what data to put there and whom to share it with, where we decide which apps to run on it, and where we define the terms of service?