Hacktoberfest 2020: GovCon Edition

October 15, 2020 · Filed under Open Source

It’s been a tumultuous year, but as the leaves changed I found myself getting excited for Hacktoberfest again. I am in the middle of buying a house which is probably the most stressful thing I’ve ever done, but I still wanted to make time to do some open source work. Because of that, my contributions this year are smaller in scope. I also focused specifically on U.S. government projects this year, since I started my own government contracting business I thought it would be a good theme to go with.

Here’s the rundown of my pull requests this year!

1. Fix missing icons, USA banner design — #3292

This was posted as an issue and identified in the repository for digital.gov. Basically, the banner at the top was missing an icon. As I dug in, I found that other icons were also missing and some of the CSS also needed to be updated.

This banner is a component in the U.S. Web Design System so I referenced that and saw how it had diverged from that source. I corrected the paths and polished things up and submitted.

My PR was accepted and merged in almost immediately, and minutes later was reflected on the site as they have a great continuous deployment system set up (I would kill to have something like that at my day job.)

2. Fix USA top banner — #1798

While I was researching my fix for the last pull request, I noticed that some other .gov sites had an issue with their banner. I found cloud.gov was not displaying the icons in the banner correctly and some of the CSS was broken.

Despite both being managed by the GSA agency and both utilizing the U.S. Web Design System, the cloud.gov site actually has a different setup and backend. The digital.gov site uses the Hugo static site generator while cloud.gov uses Jekyll. The compile time for cloud.gov after making changes was much longer, and I’m not sure if that’s a side effect of Jekyll or if the configuration could just be updating.

I don’t have a lot of experience working with static site generators, I missed that trend when it was first coming to prominence (although I did just build my first site in Gatsby) so it was a good learning experience.

Even though the issue was similar, the code fix was actually very different for this site. I also updated the copy on the banner to the new copy that was standardized last month.

3. Add template info — #5

Earlier this Fall, the team I work on decided to standardize on React as our JavaScript framework. Going forward we needed an easy way to start React projects with a consistent code style and properties. The most popular and supported starter kit, Create React App, is far too opinionated and doesn’t work well for the environment we deploy our React code in.

Because I am the most experienced with React on the team, the task fell to me to create a starter kit that standardized things for us and was much lighter weight. I built that and decided to open source it for future usage.

This particular pull request is fairly minor, it’s me adding some additional information to the README on how to leverage Github’s template feature to use this as an actual starter for a new project instead of having to clone or fork the repository. I had never used this feature of Github before, and was happy to find out it exists.

4. Fixing HTML errors — #3318

Back to digital.gov. I wanted to find other projects to contribute to, but due to the rule’s change requiring opt-in, digital.gov was the only government repository I could find where a maintainer had specifically labeled items for Hacktoberfest.

This PR involved fixing HTML errors. Since the HTML is generated by markdown in static site generators, I had to go in and trace how the markdown was improperly formatted and leading to bad HTML. While this wasn’t very challenging, it was still a good insight into some of the pitfalls of static site generators vs. a more traditional CMS. I think there were more errors from people having to manually write markdown code than if they were using a WYSIWYG. But a proper linter, like the one they installed recently that caught these errors should ameliorate that mostly.

Overall, I love the completely open approach that the GSA takes with their repositories. All of the content and code is done in the open, viewable by anybody. That takes guts. I think I have convinced my team to follow in their footsteps on some of our projects going forward.

Conclusion

This was definitely a scaled down year for me in terms of effort, but I still feel like all of my pull requests added value and I learned a little something from each of them. The truth is, this event can take quite a bit of time and can be challenging to participate in.

This year I became aware of how disliked this contest is by a lot of people in the open source world. It’s understandable, the massive amount of spam PRs outnumber the amount of people who legitimately participate. After an intense wave of criticism, Hacktoberfest was made opt-in this year which I think was the right move.

I do think there are additional changes that should be made to the contest to make it easier for people who legitimately want to participate to do so, and I will write more about that in a separate blog post.

But for now, that’s another year in the books. See you next year for Hacktoberfest 2021!

Daniel Immke

I design and build things for the web from Atlanta, Georgia. I write about topics I encounter in my day to day work here.

Learn more