projects/qr.ax



Published: 2020-04-12 | Last edited: 2022-05-04


qr.ax is a Python based web service for quick sharing of any URL or text snippet through QR codes. URL's are also shortened and stored in a database.


To use it, type qr.ax/ before a URL and press enter.


Example above:

qr.ax/https://en.wikipedia.org/wiki/Naked_mole-rat

In addition to the web interface, you can also create QR images and shortened URL's separately (as well as retrieve and delete the originals) through an open API. As of now, there's no authorization and I have yet to test how it performs under heavy load. But it's quite simple to use!

I got the idea for the project after registering the domain name in 2017, and this needs a little preface...

The Åland Islands - a small group of islands in between Sweden and Finland, semi-independent from the latter - formerly allowed only their own citizens to register .ax domain names. To tech savvy Ålanders' discontent, the Finnish gov't had other plans for the provincial top domain. Having the last say in the matter, they decided to scrub the requirement completely in the fall of 2016.

This must've flown under the radar of the international domain hustlers somehow, because - to my surprise - I was able to register several two-letter domains at the standard rate almost a year later! Out of these, qr.ax was the one I chose to keep.

I'm fascinated by the little codes and even though "2010 called", I think they're actually useful today! Also arguably more relevant now than then, since they became a de facto standard only quite recently with out-of-the-box support in both iOS and Android.

Anyhow, I figured I ought to make a site that is both relevant for the name as well as facilitating of the humble URL length, and so this project started to take form!

A version of the site has been up (and down) since early 2019, but most of the functionality was added in winter/spring of 2020. Such as a URL based easter egg for those who know the ultimate answer to life, the universe, and everything (or for those who can multiply 6 by 9 in base 13). And in case you're familiar with the cryptographic works of late Mr. Kazuhisa Hashimoto, you might find another hidden oddity on the main page.

Non-standard Python modules used are:
segno - To make the QR codes
Pillow - To watermark the images
mysqlclient - To interact with the DB
urllib3 - To parse URL's
pexpect - To interact with an external executable (related to aforementioned answer)


<< Back to projects