An Interview with Chris Cummer, WTFUtil

WTFUtil (also known as WTF), a personal information dashboard for your terminal, is a popular open-source project that can monitor your systems, services, and other important information right from your terminal. With over 13,000 stargazers and over 150 contributors, WTF is a popular tool with Golang developers and DevOps.

We interviewed the creator of WTFUtil, Chris Cummer, about WTF’s success.

How would you describe the project? What is the goal of WTF? 

WTF is a console-based dashboard for infrequently needed but very important information. It’s designed for people who always have a terminal open and want their information at a glance.

Before WTF, I always had several tabs persistently open, which was the impetus for the entire project. I got fed up with having to open the site, log in, run through 2FA and navigate to the small bit of info I wanted. Sites like BambooHR to see who was on vacation, OpsGenie to see who was on call, Google Calendar to see where I had to be next, etc. 

To kill the browser dependency, WTF was born. The project’s goal is to get the number of those browser tabs open down to zero. 

What were the first steps of this project like? How did it become a thing on Github? What was that time like?  

It started with a couple of modules, like the aforementioned ones, a timezone module, a local weather module, etc. Basically, I began with modules that were fun to build, and it grew from there.

I think that diligence helped WTF to grow and become popular. I try to treat all my personal projects like proper open source projects because huge swaths of time can pass between when I work on them. This includes documentation, a makefile, build tooling, a logo, etc. By being diligent, those projects are readily accessible to me when I come back to them. 

As to how it became popular? I don’t know how WTF was found, but somewhere around June of 2018, it landed on HackerNews and got some attention. It got another bump on HackerNews around August of 2019. Those two mentions drove most of the popularity. Between those times, we can see from Starcharts that adoption has been pretty slow and steady.

How many of the 135 contributors are actively engaged on the project? 

It comes in bursts. Currently, I’m the only active contributor. I’m primarily maintaining it by lazily updating dependencies as they arise and merging in the odd pull request. WTF does everything I want it to now, so I haven’t been actively developing lately(although with Go 1.18 and generics, that’ll likely change – there are several places those updates should help simplify the codebase).

There’s also a burst of activity every October when DigitalOcean runs Hacktoberfest. I’ve been pretty fortunate that 100% of the pull requests opened during Hacktoberfest have been worthwhile and useful. 

Historically, most of the development was done by about a dozen people who came in, added a feature, or solved a problem they wanted fixed and then disappeared, which is fantastic! I take it as a compliment that WTF is accessible enough that people can do that.

How do you manage the WTF roadmap and make decisions on direction? 

It’s really easy – there is no roadmap! The only decision I tend to make is whether or not a pull request breaks my personal configuration. If it doesn’t break my config, that PR is probably getting merged. In a nutshell: the roadmap is whatever effort people are willing to put into making improvements or adding functionality.

My entire philosophy of open source management is informed by the late, great Pieter Hintjens and his “Building Open Source Communities” conference talk from DomCode 2015. I encourage anyone maintaining an open-source project to watch it a couple of times.

What are some of the good, maybe surprising things, of being a contributor/maintainer of an OSS project? 

It’s incredibly rewarding to merge other people’s code in WTF. My favorite thing about being an open source maintainer is the number of times someone has opened a PR on the project and commented to the effect of, “I don’t know Go but…” or, “This is my first time contributing to open source so…”.  That person has stepped into the unknown, expended effort, and taken a risk, and I love being able to merge those PRs as quickly as possible. Again, see Pieter Hintjens, above.

What would be your best advice to aspiring OSS hackers?

Be polite and be patient. It’s unlikely that the people on the other side of the project you’re contributing to are on it full-time or that there are very many of them (you’d be surprised at how many foundational open source projects are maintained by one person). Keep that in mind when contributing.

Second, people who improve documentation are the unsung heroes of open source. If there’s a project you want to contribute code to, you might start with the documentation, which gets you up-to-speed on the project and helps build your reputation within the project. Some users might use a new feature, but improved documentation is valuable to everyone. 

If you could magically have something happen to the project, what would it be? 

For Go to support a functional, cross-platform module system for dynamically loading compiled code at runtime. Right now, all modules are compiled into the WTF app, whether they’re used or not. This makes for very large binaries and slow compile times. If WTF modules could be loaded dynamically, I could make several functional improvements. 

Sure, Go has the “plugin” package, but as far as I can tell it’s unsupported, and it doesn’t work on Windows. Hashicorp is doing interesting stuff with go-plugin, but that approach is pretty heavy-weight for what WTF needs.

If anyone has a good idea on how to do this that works cross-platform, I’d love to hear it!

WTF being a terminal app, and with all the things happening on the interface level (web, phones, watches, AR/VR, AI), what do you think the terminal’s future is? 

Same as it ever was. The vast majority of computing users will never use the command line, and a few of us will live there. All those technologies described in the question? Command line tooling was used, and will be used, in their construction. I mean, Microsoft spent decades trying to destroy the command line, and now Windows Terminal emulates Linux. The command line is a builder’s tool, and it’s not going anywhere any time soon.

About Chris Cummer

During the day, Chris is a Software Developer at DigitalOcean, an affordable cloud computing service. He’s also the primary author of til, a static site generator for capturing quick notes. You can sponsor him on GitHub or follow him on Twitter.

Did you know that WTF has an Airbrake Module?

Airbrake and WTF work seamlessly together. As an Airbrake user, you can display error information about your projects right from your terminal. Check it out here: https://wtfutil.com/modules/airbrake/.

Not an Airbrake user? Try Airbrake Error and Performance Monitoring with a free forever dev account. During the free trial period, you’ll have UNLIMITED monitoring. Create your free account, today.

Monitor Your App Free for 30 Days

Discover the power of Airbrake by starting a free 30-day trial of Airbrake. Quick sign-up, no credit card required. Get started.