Why Change One Character


On March 8, 2020, Yuriko Koike, the Governor of Tokyo, Japan, thanked Audrey Tang on Twitter for helping them change one character in the translation of Tokyo’s COVID-19 website. Because Audrey Tang had already become famous in Japan, this incident attracted attention and spread back to Taiwan:

Audrey Tang changed the traditional character '体' to '體'

Some people might wonder, what’s so great about changing just one character? Is it that hard? I think whether it’s hard or not is debatable, but the question I’m interested in is: “It’s just one character, why go to the trouble of changing it?”

Let me first explain what GitHub is (not talking about Pornhub, don’t be too disappointed). It was originally a place for people to store code and exchange code, but it’s not limited to code. Any file stored using the version control software git (it could be a book, or a collaborative document organizing online resources to solve a problem) can be stored on GitHub.

From another perspective, GitHub is like Facebook or Twitter in the developer world. Everyone can put collaborative projects on it. If a project you write is popular, it will get many stars. If you’re like me and can’t create a very popular project yourself, you can also contribute to those very popular projects. This contribution will show up on your page.

I’ve contributed to a project called Gatsby, which has 50,000 stars on GitHub. Using Twitter as an analogy, while it might not be at the level of top influencers like Obama, Justin Bieber, or Katy Perry, it’s probably close to the level of LeBron James, Jennifer Lopez, or Elon Musk.

Contributing to a project of this level is like me seeing Jennifer Lopez in the wild on the street. Even if it’s just taking a distant photo for social media to make everyone envious, if I have any opportunity, I would happily make a contribution, even if it’s just fixing a typo in their documentation.

This explains why open-source projects like Gatsby have so few bugs, and even the quality of their documentation is excellent. Their documentation not only has clear methods and example code, but it’s also hard to find spelling errors.

This contribution happened like this: because my personal blog is built using the Gatsby project, a while ago when I was setting up the email newsletter subscription feature, I discovered that new articles wouldn’t automatically send out newsletters.

Interjection of an embarrassing story: when checking Mailchimp’s email service settings, they popped up a survey. I checked “not good” and filled in comments like “it doesn’t automatically send.” Right after I finished filling it out, I discovered it wasn’t actually Mailchimp’s problem—it was my own website’s RSS subscription feature that had a bug 🤪.

Later, I investigated the bug in my website’s RSS subscription feature and discovered that non-English URLs need to be encoded first using JavaScript’s built-in functions to comply with the required RSS subscription format.

After I got the newsletter feature working, theoretically this should have ended. But I thought, isn’t this a great opportunity to contribute to Gatsby?

Because many people want to contribute to popular projects like this, they have some guidelines on how to contribute. So I couldn’t just mess around with the project directly. I needed to first browse the project’s How to Contribute documentation.

Following the guidance in that documentation, I first opened a discussion in their GitHub Discussions section, specifically writing:

I want to modify the adding-an-rss-feed.md file. The reason for the modification is that I encountered a problem with the example code when dealing with non-English-only URLs. I want to add an example code to the documentation and add a link to verify whether the RSS subscription feature is working correctly. The benefit of this change is that it can save development time for non-English users.

Then a core developer replied saying it sounds great, and they’d be happy to review a PR.

PR (pull request) is the most important keyword in the entire contribution process. Audrey Tang originally submitted a PR to Tokyo’s COVID-19 website project. PR means that Audrey Tang modified one character in the project and requested the COVID-19 website to merge this modification into the project. After Tokyo’s project staff agreed to merge, a record would appear on Audrey Tang’s GitHub showing that she contributed to this COVID-19 website project.

After receiving the reply that I could submit a PR, I happily opened a PR to the Gatsby project. The process was to add the content I wanted to add to the article, then save this version record (this action is called commit). After saving, I discovered that the project had many updates again, so I very cleverly 😏 pulled down these updates and merged them with my modifications, made a second commit, and then pushed this PR out.

After sending it out, I saw that the project’s bot blocked my second commit, saying I didn’t have merge permissions 😭. I originally ignored it, thinking the project core staff would help me fix it, and I checked every day with anticipation to see if my PR had been approved.

After a few days with no approval, I thought I still needed to find a way to pass the bot’s check. Finally, I used the git reset command to revert the version back to the first commit to pass the bot’s check. Quickly, within a few hours, I saw Gatsby’s founder Kyle Mathews merge my request 🎉 🎊.

PR was merged

So back to the question at the beginning of the article: is changing one character hard? As mentioned above, it might vary from person to person and from project to project. Not every project requires this much trouble. If it’s not such a large project, there might not be so many PR regulations, but you still need to know basic git commands and GitHub operations to contribute.

But I’m more concerned with the question “Why change this one character?” I think it’s a great mindset for developers.

Besides entertainment content, I’ve observed that on social media like Facebook, Twitter, or news media, there are usually two types of content with the highest click-through rates. One is demonizing content: Taiwan’s vaccine imports are behind, Facebook’s redesign is so hard to use, what problems does SMS real-name registration have… After reading too much, you feel like you’re living in hell. The other is deifying content: Taiwan’s epidemic prevention is No. 1, Clubhouse has so much valuable content, SMS real-name registration is omnipotent, Dogecoin to the moon… After reading too much, you think humans have surpassed the creator god.

On the GitHub platform, the most popular projects are those that solve the most interesting or important problems. Everyone cares about how this project solves the problems everyone cares about. If this project is amazing, the focus isn’t on deifying it, but on how to improve it to make it even more amazing. If this project has problems, the focus is not on complaining, but on how to fix this problem, to make this project have fewer problems.

And what I mentioned above isn’t even what I most admire about GitHub. What I most admire is that this mindset of “how to make this project better, even if it’s just fixing a typo” isn’t a mindset of “I’m sacrificing and dedicating myself,” but rather that “I’m making a contribution” and “I’m solving problems” can be a culture of showing off, fun, and interesting, even like a lifestyle habit, engraved in developers’ genes.

My first contribution to Gatsby even came with swag—this is the hat I picked