How it started
I was working on a project recently where I used mongoose-paginate-v2 to retrieve paginated data from the database. The challenge was, I was trying to type my output because I deselected some fields from the documents returned, but I could not do it because the library did not provide that functionality.
I had experienced this in a couple of other projects that I was working on. This time, the inability to achieve this got me frustrated. I had to do something about it.
I searched through the issues and nobody had made an issue about it; only a request for documentation around a feature close to what I was looking for existed.
So, what did I do?
Frustrated, I dove into the codebase to find out if I could resolve it. I did and I did resolve it.
I started a discussion on the repository about the challenge I faced using the library and the fix that I used which resolved it. I let the author know how important the fix is and relevant cases where it would be useful. I anxiously waited for a response but I did not get any within two hours.
I tracked the library’s owner down to his website and I sent him a mail; and this is where I got an unprecedented epiphany.
“I was not the one …”
I had known that open-source projects were the work of many contributors, but it had never been so obvious to me until I read his response to my mail.
I must apologize as I was not the one who worked on the TS part. Nonetheless, if you would like to contribute to the project, it would be highly appreciated.
I had always thought that the creator of an open-source project used by lots of other projects was a know-it-all, an expert extraordinaire. His response brought me to a stark realisation that that was not the case. I had known this subconsciously, but this made it very real.
My Epiphany
Open-source projects are built like a house. One group builds the structure, another does the plumbing, another, the electrical wiring. Some may work on the visual aesthetics and others may work on continuous maintenance. Everyone contributes their expertise to make the whole useful. Nobody knows it all.
So, go on! Start that project!
We don’t need to know it all to start one or or contribute to one. What we need more of, is a supportive community.
My contribution was accepted and merged. You can contribute too. Cheers!