Hi, I am Pratik. This is a summary of the work I did for the zulip server and web application as a part of Google Summer of Code 2025.
Zulip: Open-source team chat with topic-based threading
Zulip combines the immediacy of real-time chat with an email threading model. With Zulip, you can catch up on important conversations while ignoring irrelevant ones.
Why Zulip? - Efficient communication with organized team chat.
- Name: Pratik Chanda
- Title: Improve messages and permissions.
- Repository: zulip/zulip
- Mentor: Gaurav Pandey
- Project Size: Large
- Commits during GSoC
- Pull requests during GSoC bonding period
- Pull requests during GSoC coding period
- All commits to zulip/zulip
- All pull requests to zulip/zulip
During the GSoC period, I mainly worked on features and bugs in various areas of the web app, such as search suggestions, tooltips, and more.
-
#34624: overlay: Fix automatic overlay closing on click when
<select>is active. -
#34711: Fix empty tooltip on recipient row resolve topic spinner.
-
#34713: Fix unread banner not hiding when marking topic as read.
-
#34721: Hide channel name in topic header bars if it is already displayed in navbar.
-
#34779: Add a "channels:web-public" search filter.
-
#34785: Fix simplebar overlap with content in todo/poll widget modal.
-
#34786: Move /features images into landing-page/features directory.
-
#34826: Fix buddy list tooltip stuck on redraw.
-
#34899: Desktop notifications for message not grouped together.
-
#35023: Fix keyboard navigation on accounts in oauth.
-
#35050: unread_ops: Fix filter term check for current narrow when bulk update.
-
#35063: app: Allow overscroll on x-axis.
-
#35077: help_menu: Center keyboard shortcut text in kbd element.
-
#35096: sidebar: Remove realm-description code block in right sidebar.
-
#35096: sidebar: Remove realm-description code block in right sidebar.
-
#35180: tooltips: Don't destroy user popover instance on user status hover.
-
#35207: settings: Remove unreachable click handler for settings.
-
#35210: Search typeahead pills small fixes.
-
#35276: Add topic filter focus check in is_in_focus.
-
#35329: search: Remove background suggestion highlight for text search.
-
#35369: search: Fix user pill min-width overridden by parent rule.
-
#35424: message_flags: Fix message flags not updating for wildcard mentions.
-
#35460: message_send: Fix update draft error when message send fails.
-
#35611: left_sidebar: Add menu to change channel folder setting in left sidebar.
-
#35629: Improve channel folders setting UI.
-
#35705: Stream settings channel folders permissions fix
-
#35611: left_sidebar: Add menu to change channel folder setting in left sidebar.
-
#35724: Show tooltip on long folder names in left sidebar.
-
#35777: search_suggestion: Remove subset suggestion from search suggestion.
-
#35791: hotkey: Fix argument type for narrow filter.
-
#35835: filter: Use encoding for topic narrows when generating redirect url.
-
#35839: css: Fix slow-send-spinner not applying on all messagebox-content.
-
#35841: search_suggestion: Fix empty topic suggestion topic display name.
-
#34802: Make message edit box resizable.
-
#34814: Change top feed notice.
-
#34888: Tooltip instance on typeahead stuck after enter.
-
#34962: Notify emoji reactions to message sender.
-
#35026: Fix compose box prematurely switches to edit mode when sending from preview mode
-
#35140: widget: Hide widgets from muted users like normal messages.
-
#35154: Add a "+" button for adding DM recipients.
-
#35174: Hide group DMs where all other participants are muted from all views
-
#35258: Toggle emoji animations
-
#35281: search: Single enter should narrow to current filters.
-
#35400: Prevent races resulting in incorrect search index results for newly sent messages.
-
#35519: reload: Remove event listeners to handle reload logic for compose.
-
#35576: Search suggestion description_html refactor
-
#35789: Improve tooltips on links to locations within Zulip
-
#35801: narrow: Show historical data when narrowed by channels:web-public.
-
#35802: tooltip: Add tooltip showing url for external links with no delay.
-
#35807: Internationalize ? menu.
-
#35850: Redesign "channels" and "user groups" tabs in user profile.
-
#35907: tests: Add test coverage in search for empty operand topic suggestion.
Zulip is, in my opinion, a great example of how open source should be done. From the readily available documentation and guides that help new contributors get up to speed, to the efficient communication within the Zulip community, it provides an environment where you can truly see yourself grow as a software engineer.
I have really enjoyed spending my summer with the Zulip team and community, and I also hope to continue working on the Zulip product!
Shout out to my mentor Gaurav Pandey and my buddy Kumar Aniket for all the code reviews and feedbacks. Special thanks to Tim Abbott, Aman Agrawal, Alya Abbott, Evy Kassirer, Karl Stolley and also other maintainers for the code reviews, learnings and for the feedbacks.
Thanks to everyone at Zulip for the great experience.

Can I support & collaborate with you?