QRpedia – Custom URLs

This blog post is designed to foster a technical and logistical discussion. In much the same way as the earlier QRpedia language discussion did.

One of the most requested features in QRpedia is to have custom URLs.

For example, the British Museum may want a URL of “bm.qrwp.org”. This has two main advantages.

  1. Better analytics. Although the British Museum is the only place likely to have the Rosetta Stone, many museums will have exhibits about “Ancient Egypt” or “Gold”. By differentiating museums, their statistics are easier to view.
  2. Branding opportunities. A user will know that they’ve scanned a code belong to a specific museum.

From a technical perspective, this is fairly easy to implement. Assuming that a museum is only generating codes in one language, we simply map $museum.qrwp to $language.qrwp – and record in the logging database as per usual.

However, there are a number of challenges around the naming of museums which means considerable thought is needed before we implement this.


QR codes work best when the URL inside them is as short as possible.

This means, we don’t want a URL like “BritishMuseum.qrwp.org” or even “PrestongrangeIndustrialHeritageMuseum.qrwp.org”.

So, we need to choose suitable abbreviations.

Language Clashes

We could create a custom URL for the British Museum of “bm”. However, that’s also the same language code as the Bambara language.

There are several Language Codes in use – covering two and three letter combinations. There are currently 282 different language versions of Wikipedia.

Those mostly use two or three letters to distinguish between languages – but there are the occasional surprise like “bat-smg

Abbreviation Clashes

Suppose that the British Museum wanted a custom URL of “brit.qrwp.org” – that may clash with the (fictitious) Brazilian Institute for Technology.

We Need…

We need to meet these aims for custom URLs:

  1. Short
  2. Unique
  3. Recognisable
  4. Fairly distributed

How on Earth do we do that?

On your marks… Get set… Discuss!