My First Open Source Contribution: Renaming a Tab in Coop

4 minutes read •


It was supposed to be a small change. It was a small change. It still took 7 commits.

Why Coop?

Coop is an open source content moderation tool made by ROOST. Basically it’s what trust and safety teams use to look at reported stuff, set up rules and decide what to do about it.

I had been wanting to do an open source contribution for ages. The problem was every time I opened a big repo, I would scroll through it for five minutes, feel very stupid and close the tab. This time I told myself I wasn’t allowed to close the tab, Growth.

Getting it to run locally

Before I could change anything I had to run it locally. Coop’s full local setup starts a LOT of services such as Postgres, ClickHouse, Redis, Scylla and a few more just for tracing but my laptop is an M1 with 8GB of RAM (ughh) and it took one look at that list and basically said “you have got to be kidding me”.

So I cut it down to only what I needed, which was Postgres, ClickHouse and Redis running in OrbStack that sat at around 450MB while idle which finally left some room for the actual app. me and my laptop are on speaking terms again.

The issue I picked

I went with issue #746. There was a settings tab called “Other” and it had become the junk drawer of the settings page. Three things were living in it:

So the plan was to delete the duplicate, move the policy setting to the Review Console tab and rename “Other” to Partial Items. Ohh and update the docs too (Can’t forget the docs).

Since it was my first ever contribution, I purposely picked one labelled good first issue. The code itself wasn’t the scary part. I just wanted to get used to how the whole thing works (forking, opening a PR, getting reviewed by actual humans) without also having to understand the entire codebase on day one.

What I actually changed

My PR ended up touching 10 files. The React components for the settings tabs, their tests, the docs and even the screenshots inside the docs. For a rename. Yes really.

I also tested the “multiple policies per action” setting properly in the manual review tool because the last thing I wanted was my first ever PR to break something that used to work.

The review (aka where I learned the most)

The first reviewer was CodeRabbit, an AI review bot which had comments ready before I had even finished feeling proud of myself. Then the actual maintainers showed up and that’s where it got interesting. They asked me to:

And then there was my favourite review comment of all time:

Not an Oxford comma fan, huh? :)

No. No I am not. And I never will be.

After 7 commits it got approved and merged on 18 August 2026 (YAYYYY!).

Things I learned

What’s next

Since then I have also had a PR merged in npmx and I am working on another one so I think I am an open source person now, right??