I’m officially a contributor for Zulip Terminal! I’m helping to build things that other people actually use! At the start of my second batch at Recurse Center, I decided to contribute to an open source tool that I use. The idea of writing code for an ‘official’ project scared me, but I knew I was ready for the challenge. Let me tell you why and how I became a contributor for the Zulip Terminal project...hopefully, my story will inspire you to join as well!
I might be a bit biased but ever since I joined the Recurse Center (which uses Zulip for communication) I’ve been telling everyone I know that they should quit using Slack and switch to Zulip.
The Zulip community has been so supportive throughout my process of contributing - from welcoming me when I first joined, to pointing me to some good first issues, to answering my questions to giving me timely and detailed feedback on my pull requests I couldn’t have asked for better people to work with.
Plus Zulip Terminal is a newer project with a less mature codebase so it was easier to dive in and find things to work on. Not to mention that it’s written completely in Python, my language of choice.
Many projects have a place where all the contributors and the maintainers hang out - for Zulip this is the community server! I joined and posted in the # New Members stream, where I got lots of wonderful advice. Then I moved to the # Zulip Terminal stream and started to read through all of the topics and get a feel for what was going on.
When I decided to contribute to Open Source I still didn’t understand git. I knew how to create a repository on GitHub and push commits to it, but I didn’t know anything about fetching, pulling, rebasing, amending, patching, etc. I didn’t know anything about the art of structuring your commit history or working collaboratively with other people. Hence, the first step to contributing involved reading through Zulip’s git guide and working through this great interactive tutorial. Plus many many google searches (and probably many more still to come).
If you're also new to git, I highly recommend installing the Git Graph plugin for VSCode. It's helped me visualize what's happening in the git tree as I perform various commands; however while I like to use the plugin to look at the tree, I stick to the command line for actually running commands.
While I knew how Zulip worked, I had only ever used the Mac desktop app before so I had to learn how to use the Terminal app. This in itself was a process, given that the user tutorial had never been completed...which led me to my next step.
Many Recursers suggested taking on a documentation issue as a first contribution to:
The thought of familiarizing myself with Zulip Terminal’s codebase was a bit overwhelming when I hardly knew how the app itself worked from a user’s perspective. Plus, I was slightly afraid that I’d push my git commits and somehow delete the whole thing. I’m a confident writer who enjoys distilling complex topics down into bite-sized pieces; therefore, when I realized Zulip Terminal needed a tutorial, I knew I was the (wo)man for the job.
Check out the tutorial here.
If you’re looking to contribute to an open source project, I highly recommend getting started by taking on a documentation issue.
The desktop version of Zulip gives you the option to have the number of messages you have starred displayed in the upper left-hand corner of the Zulip app. The Zulip Terminal app didn’t have this option, but now that my pull request is merged, the number of messages you have starred will be displayed in the upper left-hand corner of the app just like in the desktop app!
A bit underwhelming no? The beauty lies in the code...Adding this feature touched more parts of the codebase than I expected and I ended up with a fairly good idea of how the project worked as a whole. Plus having other people review it was so much fun. I learned a lot and thoroughly enjoyed our team debugging sessions.
Not all contributions require you to make a pull request - you can also help spread the word and get other people involved. I love Zulip and I love telling people about it. This week I gave a workshop during the Recurse Center’s Never Graduate Week Hackathon on “Building a Zulip Bot!!” I had a lot of fun putting together the workshop and sharing my newfound knowledge of the Zulip API with others. I even managed to hunt down a bug with the latest server update while I was putting the workshop together, which was a rewarding experience. Here’s a pre-recording of the workshop I shared for people who missed the live version and for anyone who wants to build a Zulip bot.
I also convinced Argo Navigation, the startup I’ve been with for the past year, to start using Zulip. When you love something don’t be shy 😉.
Originally my plan was to iterate and improve upon my initial contribution with the starred count display. Unfortunately I won’t have time before I head on my next adventure (which involves a lack of internet for 4+ months); however, when I come back I want to try my hand at reviewing and see what new issues have popped up.
Stay tuned and be sure to `pip install zulip-term`!