عودة إلى أخبار المطوّرين

Docusaurus: A Contributor’s Story with Lisa Chandra

٢٧ أبريل ٢٠٢١بواسطة‏‎Cami Williams‎‏

The “Contributor’s Story” series is intended to provide a face and voice to our major open source contributors and community members, an overview of the projects they are working on, and the successes and challenges contributors face when developing.

For this blog post, we spoke with Lisa Chandra, a Docusaurus contributor working on issues and code efficiency through the Major League Hacking (MLH) Fellowship.

"I believe this to be one of the greatest opportunities to learn and grow in this field.”"

Tell us a little bit about yourself and your current experience in the MLH Fellowship.

I am a junior pursuing a Bachelor of Technology in Computer Science and Engineering at Indira Gandhi Delhi Technical University for Women. I code in C++, Javascript, and Python and have had experience working with Node.js and Express. Currently, my work is more focused on React as a part of the MLH Fellowship under the Open Source track where I am working with Facebook and Docusaurus. I am planning to start exploring DevOps and other fields of computer science including Data Science and Machine Learning.

I had heard of the MLH Fellowship last fall through my friends. I hadn’t found much time to apply until this spring where I stumbled upon some Reddit threads discussing the experiences of the past fellows. I started looking for blogs to learn more about the Fellowship and discovered it to be a useful learning experience that I did not want to miss out on. I soon filled in my application, got through for the interviews, and made it to the spring batch 2021 for the Open Source track.

Where did you first learn about open source? How did you get started using/contributing?

I believe Open Source to be one of the best ways to work collaboratively with teams, develop a network of mentors, and apply feedback from users to improve the quality of code and project.

I first learned about Open Source when I was researching Google Summer of Code. I had gotten into GSoC for OpenRefine in 2020- it had been a great introductory experience to the world of Open Source. Once that was done, I looked through GitHub and found many projects that I would have liked to contribute, most of which being a part of the Fellowship and Facebook.

Open Source definitely has a learning curve because of the size of codebase a project can have, but once you get the hang of it and begin contributing, it’s addicting! For me, it has become an essential role in professional growth in terms of teamwork and the quality of code you produce. I’m glad to have started with it through the Fellowship.

Describe the project you are currently working on.

I’m currently working on Docusaurus which is a static site generator designed to make optimized websites quickly. Docusaurus is focused on making it easy for teams to publish technical documentation without having to worry about infrastructure or design details. It provides great features including versioning, i18n and search. It is powered by MDX and is built with React.

Most of my work revolves around solving issues in a prioritized manner. This includes weekly meetings with the maintainers to discuss updates and new issues that need to be solved to make Docusaurus more efficient.

How did you initially go about tackling the issue?

Initially, we had to set up the project locally and pick up an issue of our choice to work on. I began working on creating a filter for the showcase website and moving migrated sites from the Docusaurus Version 1 showcase to Docusaurus Version 2. To tackle this issue, I wanted to gain some familiarity with the codebase as well as the tool itself. I focused on playing around with Docusaurus a bit until I felt comfortable with the tech stack. Playing with the technology, I ideated on how to dive into the issue and come up with a logic for the filtering. This eventually led me to building solutions and creating a Pull Request. Once the PR was made, all I had to do was work on the reviews from maintainers and make updates to the code.

What roadblocks or problems have you faced thus far in your contribution?

Before starting this project, I did not have much hands on experience with React. There was a learning curve beyond what the project was about. I had help from my technical mentor as well as the maintainers, making it a smooth journey to get ramped up. By establishing a relationship with the maintainers, I received direct suggestions for topics to read up on and resources to look at, which helped me learn a lot about the best practices to follow when working on a project as large as Docusaurus.

Another intimidating thing had been the size of the project. Getting familiar with it took some time. The wonderful documentation, as well as the project tour we had gotten as part of the introduction, helped me a lot in the beginning.

What is the current status of development?

My peers and I have managed to work on a lot of open Docusaurus issues, and will continue to do more beyond the end of the Fellowship. Working on this project has been quite the experience for all of us: because of the practices we had to follow and caliber for reviews, we were all pushed to work harder and produce more quality code.

What have you learned about the project, development, or open source thus far?

Docusaurus, like I mentioned before, is quite a large project, yielding a huge scope of new things to learn. I learned a lot of best practices to follow when contributing to a large technical project, and also how to prioritize the maintainability of the code I was writing. I also gained substantial experience working in a team and collaborating remotely.

Additionally, building in open source made me become more confident of my work and how to quickly adapt to changes in requirements. This is one of the best experiences I have had with Open Source. It has not only improved my technical skills, but also taught me how to overcome new challenges and keep learning and growing as I continue to work and contribute to the community.

What advice would you give future contributors to the open source project?

When you want to contribute to a project for the first time, it’s important to not get intimidated by the experiences of others or the amount of code in a project. All you need to remember is that you’re contributing to a community where everyone wants to learn and grow together while you build something that would help a lot of people.

As soon as you add your first line of code, solve your first issue, or file your first pull request, most of your inhibitions would go away as you realize how readily everyone is to help, be available to answer questions, and welcome you to the community. In Open Source, you learn a lot in terms of technical skills, as well as gain insight on the key aspects of being a part of a large project.

We’d like to thank Lisa for their continuous contributions to the Facebook Open Source ecosystem. You can follow Lisa’s work via her LinkedIn.

If you’d like to learn more about Facebook Open Source, follow us on Twitter, Facebook, and YouTube for relevant updates, and check out the CrypTen website and GitHub for how to get started.