Introducing CPANHQ

| 1 Comment

By Shlomi Fish

Most people who are actively developing using Perl are familiar with sites for searching CPAN (the Comprehensive Perl Archive Network) such as and These sites provide a simple search bar where users can search for keywords or key phrases, and find a list of results. These sites also feature pages for the various CPAN distributions, the various authors, and the individual pages of documentation inside the modules.

Recently, Andy Lester started the "Rethinking CPAN" mailing list and wrote a Perlbuzz post titled "Rethinking the interface to CPAN", where he gave the case that the current resources may be inadequate for the process of selecting a module on CPAN. For a long time, there was an intermittent discussion and some brain-storming, but very little code (if any) has been written. This has all changed with CPANHQ.

So what is CPANHQ? As documented in the first and only wiki page it has so far (which I wrote a few days ago), "CPANHQ aims to be a community-driven, meta-data-enhanced alternative to such sites as and Currently, the functionality is very basic, but we have great ambitions."

I learned about CPANHQ by overhearing a conversation on Freenode's #perl channel. I joined the effort, and made several enhancements to the Catalyst and DBIx-Class-based code. The functionality is still very basic.

Some of the plans and ideas we have for CPANHQ, which may be translated into code in the future are:

  1. The code is and will remain open-source, which makes it easy for people to contribute to.

  2. We plan to have most of the current features of and including pages for authors, distributions, and individual modules and their documentation.

  3. CPANHQ was already enhanced with some jQuery and jQuery UI JavaScript goodness, and we plan to add more of it to make the user experience better.

  4. The site aims to be more integrated than the many separate CPAN-related sites today:, CPAN Forum, AnnoCPAN, CPAN Ratings, CPANTS, CPAN Dependencies, etc. By putting everything under one roof, we can provide a better user experience than the many sites with very loose integration.

  5. We plan to enhance the site based on meta-data as provided by both the module authors (in the META.yml file and the users of the site.

    For example, we have already added support for the META.yml's keywords which allow authors to tag modules, and we plan to support user-tags too.

  6. CPANHQ will be very community-driven. People would be able to open user accounts there, which will allow them to contribute content to the site, such as tags/labels, comments, wiki pages, chatter, etc.

The CPANHQ wiki page contains more ideas and insights. Like I said, the current functionality is incredibly basic, but we hope that with enough help, time and dedication, we can create an attractive and engaging interface to CPAN, to make finding a module on CPAN faster, easier and more fun.

In the meantime, you can look at the screenshots we have of the interface so far, or clone the github repositories, and set up a local web-interface.

Shlomi Fish has been writing using Perl, about Perl and for Perl, since 1996, when he started working for a web-design shop, and discovered Perl and UNIX, which he's been in love with ever since. He initiated and is maintaining many CPAN modules and contributed to many other Perl and non-Perl related projects.

1 Comment

This looks v cool

fwiw, I've been playing with something similar

It's still a little rough around the edges.

The aim was to search the installed CODE rather than cpan. So you could also search your own local code bases (ahem, your darkpan?)

The indexes and data are all there to let you search across subroutine names, pod section titles, the code, comments, pod or (limit by) any combination of those. However the rendering isn't (yet).

Actually, my primary original aim was to start a project that would be modern and enlightened, useful (to some degree), but primarily function as a great "textbook" for people to learn & experiment more with Catalyst/DBIx::Class, etc.

A worked example ... of "best practise" ... a full end-to-end stack.

That might be a bit lofty of a goal, and perhaps it'll be beyond me. I'm certainly not claiming it's anywhere close at the moment. Suggestions or patches are most welcome tho.

The other point being that while I wanted it to be useful, given the learning/tutorial/worked-example driver I wanted to keep the feature set well defined.

Anyway ... CPANHQ looks fun ... will play!

Leave a comment

Job hunting for programmers

Land the Tech Job You Love, Andy Lester's guide to job hunting for programmers and other technical professionals, is available in PDF, ePub and .mobi formats, all DRM-free, as well as good old-fashioned paper.