Avatar

Ciao, I'm Julia.

Going From Open-Source To Private

#react-native #reflections

3 min read

We (the team I work for) recently made the tough decision to go from being an open-source app, to a private app. The decision was a lot less to do with wanting to make our code private, and more to do with needing to reduce the overhead that comes with making a code base public and accepting contributions.

Being a fairly small team of engineers, we unfortunately don’t have a lot of bandwidth to spend the time properly organising things like our public issues backlog and doing PR reviews. As a significant portion of our front end code base does not have automated tests to cover it, we also have to do a lot of the manual testing ourselves which takes time. This also doesn’t seem fair to contributors who would, I’m sure, want to see their PRs merged in quickly where possible, rather than being left to go stale, considering the effort they went through to fix issues.

To summarise our decision making, some of our key blockers were:

  • Not using GitHub to log our issues backlog, nor having a public issues board. We therefore didn’t have a prioritised list of issues to communicate to the public on.
  • We were not getting enough public contributions to justify having robust organisation around accepting public PRs, queries, etc.
  • Our backend APIs are presently not documented well enough for third parties to consume.
  • Small number of team members means limited bandwidth to review and check PRs, especially when…
  • Automated test coverage is not high across our code base.
  • We use custom fonts in our app. We would have needed to substitute this out for a publicly accessible font.
  • To allow the public to easily interface with our backend, the best thing would’ve been to devise a mock server which would’ve required additional dev resource to get going.
  • Our app is ejected from Expo, which means it’s a little convoluted to get set up locally.
  • Our app is currently going through quite a lot of significant architectural changes, with lots of moving parts. Without constantly updating the publicly available documentation, it might have been frustrating to contributors who might not have understood what / why / when the changes were happening.

I’m personally a little gutted that we’re no longer going to be an open-source app. The main thing we’re sad about is not being able to share publicly, our React Native knowledge and how we’ve structured our app (which we created solely to serve the public). This is actually the first and only open-source app I’ve worked on up to now. To make up for this, I reckon it’s time for me to try to find another repo that I’m super passionate about, and that I feel comfortable contributing to (assuming of course, that it’s welcomed! 😝).

If anyone knows of any React-based open-source projects that’s open-source newbie friendly, do let me know!

© 2016-2024 Julia Tan · Powered by Next JS.