I was pleasantly surprised when I realized my recently published Go package tview had just passed 1400 stars on GitHub which is quite significant. It seems to have struck a nerve. As mentioned in my previous blog article, there are already a number of Go packages that allow you to create terminal-based user interfaces. But the focus on making it simple seems to have paid off.

Naturally, with this popularity come new responsibilities: All of a sudden, I have to respond to feature requests, bug reports, and pull requests. This is fine. After all, a lot of work done for my company Stock Performer is responding to customer support requests. It forces you to say “no” in some cases, however, which I guess is never easy, especially because you don’t really know who you’re dealing with (GitHub is quite anonymous, it turns out).

To me, the most difficult of such rejections is for pull requests. Some users had started to write a lot of code and asked me to pull it into the package. Generally, I don’t mind merging their code if it’s useful and if they follow the general philosphy of the package. But some of them were either unnecessary (e.g. 20 lines of code to test one line of code: a getter), resulting in increased future work. Or they introduced a whole new level of complexity to the project which wasn’t in line with my goal to keep things simple. I had to reject them and didn’t know how these programmers would react. So far, there weren’t a lot of complaints. (After all, you can always maintain your own branch of the project.)

Another consequence of this popularity is that I now have a responsibility to maintain this project in the long term. It’s not just a personal project anymore. I will add features and try to improve it overall. Personally, I welcome this external motivation.