Zulip's Google Summer of Code 2024
This summer, 17 contributors completed the Google Summer of Code (GSoC) program with the Zulip development community. This was the 9th consecutive year that Zulip participated in GSoC; over 120 contributors have now completed one of our formal internship programs, primarily through Google Summer of Code and Outreachy.
Our welcoming community is fully committed to helping bring up the next generation of open-source contributors from a wide range of backgrounds. Our experienced contributors, including many internship program alumni, have dedicated thousands of hours to mentorship.
“My experience with Zulip over the past few months has been nothing short of transformative. Working on this project has been a journey filled with learning and growth, and the memories I’ve created with the community during my GSOC period are ones I will always cherish. The support and warmth from everyone involved were exceptional.” — Afeefuddin
We have also invested into making Zulip’s code uniquely readable, well tested, and easy to modify. Beyond that, we have written an extraordinary 150K words of documentation on how to contribute to Zulip, with topics ranging from practical Git tips to essays on important architectural decisions.
This is why our 2024 GSoC participants were able to contribute major improvements to the Zulip product. Together, this year’s GSoC participants wrote over 800 commits that have already been merged into Zulip!
“Seeing code authored by me get merged upstream and used by thousands of users is a feeling I find hard to articulate well — it is to be experienced firsthand.” — Kislay U. Verma
It’s impossible to describe here all the great work that’s been done, but here are some highlights.
Web app features for all users
- Adding support for special topic links that work even when the topic is renamed or moved to another channel. (Rohan Gudimetla)
- The formatting on pasted text can now be removed with “undo”, and pasted conversation view URLs are automatically converted to Zulip’s native #channel>topic format. (Kislay U. Verma)
- Many left sidebar improvements, including functionality, tooltips, and bugfixes. (Pratik Chanda)
- Improving the design and interactions for input pills. (Adnan Husain, Sanchit Sharma)
- Adding a dedicated panel for viewing channels you are not subscribed to. (Sujal Shah)
“I am grateful for the insights I have gained on what goes into the engineering process of a large-scale project.” — Pratik Chanda
“I took a huge step, beyond my expectations, and experienced my most memorable summer yet.” — Adnan Husain
“Working in the Zulip community has been nothing short of inspiring. Whether you’re a contributor or a user, the community responds quickly—often within hours—when you need help or want to suggest a feature or report a bug.” — Sujal Shah
Web app features for administrators
- Implementing flexible permissions for restricting direct messages. (Kunal Sharma)
- Making it configurable whether users can edit a custom profile field for their own account. (Tanmay Kumar)
- Reworking what happens when a channel is archived. (in progress) (Sanchit Sharma)
“GSoC was an amazing learning experience. I have significantly improved in writing quality code, addressing feedbacks from reviewers, and reviewing my own code efficiently. I have learned how to work in a community, effectively express my ideas, and collaborate with others to achieve goals.” — Kunal Sharma
“I have experienced exponential growth. I am now more comfortable in navigating large open-source codebases, and more confident in my ability to communicate complex ideas.” — Tanmay Kumar
“Participating in GSoC with Zulip has been an invaluable learning experience. It highlighted the power of teamwork and proper Git practices, and the significance of thorough documentation. — Sanchit Sharma
Technical improvements
-
Migrating over 25+ JavaScript files/modules to TypeScript. (Afeefuddin, Varun Singh)
-
Migrating 150 views in the Zulip server to a modernized type-aware request parsing framework based on Pydantic v2, and adding new facets to the search system. (Kenneth Rodrigues)
“Getting a chance to learn from the extremely talented Zulip team has made me a better developer. Apart from technical skills, I learned how to self-review my work, review others’ work, and propose ideas in a clear and understandable manner.” — Varun Singh
“My experience with Zulip has been amazing. What that stands out the most is my improved ability to explain my changes by writing more comprehensible commit messages and better documenting my code, making me a better programmer overall.” — Kenneth Rodrigues
Integrations
- Migrating the Slack integration to a new API, and improving how Slack threads appear in Zulip. (Pieter Cardillo Kwok)
- Updating 80 pages documenting Zulip’s integrations. (Niloth, Pieter Cardillo Kwok, Adnan Husain)
“This experience has been invaluable to me as a software engineer, and I’m very grateful for it. I hope to give back by contributing to other open-source projects in the future, and by continuing to contribute to Zulip.” — Pieter Cardillo Kwok
Beta mobile apps (written in Flutter)
- Implementing video previews and playback. (Rajesh Malviya)
- Adding auto-complete for entering the topic where a message will be sent. (Khader Khudair)
- Ranking @-mention autocomplete results by relevance: topic participants, DM partners, and other signals. (Sayed Mahmood Sayedi)
“These months have been pivotal, offering valuable insights and skills that have greatly contributed to my professional development.” — Khader Khudair
“This summer was the most constructive part of my programming journey, in which I was exposed to various software engineering practices for the first time, including open-source, software testing, code reviews, and pair programming.” — Sayed Mahmood Sayedi
Terminal app
- Greatly improving the in-app help system, including work towards enabling context-specific help menu and hints. (Niloth)
- Work towards adding support for marking a topic as resolved or unresolved. (Sashank Ravipati)
“This experience has been invaluable in my growth both professionally and personally. I am deeply grateful to Zulip for being an exceptional organization and fostering a thriving developer community that has greatly supported me.” — Niloth
Parting thoughts
We’re truly proud of everything our GSoC 2024 participants have been able to accomplish, and are looking forward to their continuing contributions in the coming months and years! If you are eligible, please join us for the next GSoC or Outreachy program!
“Google Summer of Code with Zulip was one of the best moments during my 3 years of College. Zulip has made me confident in my Git skills and ability to solve problems.” — Rohan Gudimetla
Acknowledgements
We are truly grateful to all the community members who stepped up to mentor GSoC participants this summer, and help the program run smoothly: Arpit Sharma, Gaurav Pandey, Greg Price, Dinesh Chidipothu, Karl Stolley, Ken Clary, Lalit Kumar Singh, Lauryn Menard, Moritz Neeb, Mounil Kamlesh Shah, Neil Pilgrim, Puneeth Chaganti, Prakhar Pratyush, Priyank Patel, Purushottam Tiwari, Ryan Rehman, Satyam Bansal, Shlok Patel, Riken Shah, Sumanth Rao, Suyash Vardhan Mathur, Rohitt Vashishtha, Ujjawal Modi, Shubham Padia, Vishnu KS, Yogesh Sirsat.
We are also incredibly grateful to Google for organizing and funding this unique mentoring program, which helps bring up the next generation of open-source contributors. It is an invaluable contribution to Zulip and hundreds of other participating open-source projects, as well as the open source community at large.