This website is powered by the Perl-based CGI::Application framework.

That framework is very extensible, and allows a lot of useful things to be done quickly and easily. The core of the application is small, and numerous plugins exist to implement additional behavior, we've written and published two new plugin-modules:


To allow us to perform simple testing of pricing models, and similar, we wanted to use A/B testing, but the framework didn't support that easily.

This plugin adds the appropriate support to allow A/B testing to be achieved easily.


This module allows rate-limiting of incoming requests, using Redis for persistence.

This is just one of the measures in place to mitigate against abusive requests, and ensure that our service is running well, even under load.


Our zone-files are based upon the TinyDNS format, and the code to parse those has been released here:

Because the zone-files we parse are not standard there is no intention to publish upon CPAN:

  • We ignore the NS record-type.
  • We ignore the SOA record-type.
  • Our TXT-record type is non-standard.

Despite that the code has some value for external consumers - if only to show how a zone-file would be parsed:

$ ./dump-zone  ./zones/
Type MX

Type A


The Perl SSHKey::Fingerprint module allows a fingerprint to be calculated from a public SSH key, in a simple and portable fashion.

The module is useful if you allow users to upload public keys, and wish to make them easily identifiable - as we do on a users key-management page.

The source to the module is available upon Github here: