Having discovered Hacktoberfest last year I was keen to participate this year, I fully confess that's largely exclusively for the free stuff!  My goal this year was to have a mixture of documentation based and code based contributions, upping my game somewhat.

The rules

In order to participate you need to have an account on GitHub.  From there it's simply a case of forking some repositories (code stores), making some useful contributions and submitting a pull request (PR) to the project.  A pull request allows the other person to review your contribution and then comment or accept your code into their project.  Importantly for Hacktoberfest, your PR doesn't have to be accepted (many people could submit the same thing), it just needs to not be marked as invalid / malicious.

DigitalOcean have clearly decided to tighten the rules following some weak contributions in the past.  I'm thinking of the "fixed single word typo" type contributions - I've submitted some of those myself, and it is something worth fixing, but are four, single word, typo fixes worth free t-shirts and stickers?  Probably not.  In response, they've started to review PRs and repositories - some projects are not applicable for Hacktoberfest, such as a couple I committed to.  These were just vanity projects (a Hacktoberfest map and a list of profiles) and while they may engender a sense of community they're not helpful overall, so got blocked.  This year DigitalOcean offered a portal so you could see how you were doing, with a helpful key:

Key for the Hacktoberfest portal, showing the status of your Pull Request.
Key for the Hacktoberfest portal, showing the status of your PR.

My own projects

This year I started my own repository for a project that I've called Mocktranet.  The Mocktranet is a mocked up intranet for Blue Box Limited and was born after I found myself, again, creating a fake intranet site for a penetration testing training event I was running.  For future events it's intended to use Mocktranet instead, dropping it onto the lab network, and being open source means that I'm not the only person making the project better.  The important thing is that Mocktranet can drop straight on to a very minimal webserver (Apache, Nginx, IIS) without the need to configure additionally complex programs such as a database or PHP.

The initial, very basic and bland, Mocktranet showing the Staff Directory as just a list of people and phone numbers.
The initial, very basic and bland, Mocktranet.

To gain interest in the project I created some Issues (to do items) on the repository and tagged them with the Hacktoberfest label.  Some were also labeled as a "good first issue" to help steer new developers to the project (and thus free goodies).  Within half an hour of putting the project online I was receiving contributions and PRs - that was very cool.  I noticed this morning I had actually received some PRs towards the end of October that I'd missed, so reviewed and merged those this morning.  Now the Mocktranet looks something like this:

The Mocktranet staff directory, now with personnel photos.  The site has a nicer looking blue and grey style to it.
A more exciting Mocktranet, after Hacktoberfest.

Feedback on this year

There didn't seem to be such a buzz around Hacktoberfest this year, although that may be because it wasn't as new and shiny as my first time.  I did notice there seemed to be fewer organisations offering rewards this time (last year a friend of mine got rewards from four or five companies) and Microsoft was absent despite now owning GitHub.  I noticed less of a buzz on Twitter too, so maybe everyone was busy?

The Ladybug podcast did a nice two part series on Hacktoberfest, worth a listen if you're possibly interested next year.  (Part one and part two.)

How did I do?

Despite starting with the best of intentions I only managed four eligible PRs this year, although I did manage to contribute to some tools that I use (there's some follow up work I need to do on that too).  The edited screenshot below shows my profile for this year, showing one (of three) ineligible PRs:

My Hacktoberfest progress chart (edited).
My Hacktoberfest progress chart (edited).

I've got some PRs that I need to revisit in the PHPIPAM project in order to add some localisation (language translation for text strings) but a lack of free time has stopped me doing so.  I think that's partly because I'm suffering burn out (mental exhaustion) given some stuff going on elsewhere.  Hopefully that'll change soon and I can get that PR accepted, maybe committing more to the project.

Next year

I'll look to participate again next year and maybe even look at hosting a Hacktoberfest party to get some developers together for a day.  It'd be a good way to a) have everyone pass the 4 required PRs and b) mentor some others / receive mentorship for bigger projects.

Roll on October 2020!


Banner image: the Hacktoberfest 2019 artwork, (c) DigitalOcean.