Gitter
Gitter is an open-source chat and networking platform designed for software developers and open-source communities, facilitating real-time messaging and discussions in rooms often linked to GitHub or GitLab repositories.[1] Launched in 2014, it quickly became a hub for connecting developers in the open-source ecosystem.[2] In March 2017, Gitter was acquired by GitLab, which committed to open-sourcing its code to enhance integration with version control workflows.[2][3] By September 2020, Element (the company behind the Matrix protocol) acquired Gitter and migrated its infrastructure to Matrix for decentralized, end-to-end encrypted communication and broader interoperability with clients like Element.[4] Key features include support for Markdown and LaTeX formatting, GitHub/GitLab authentication, and seamless bridging to the Matrix network, allowing over 1.7 million users (as of 2020) to engage in public or private channels tied to projects from organizations like Airbnb, AWS, and Google.[1][4] Today, Gitter serves as a bridge between legacy chat rooms and modern federated protocols, promoting secure collaboration without vendor lock-in.[5]Overview
Purpose and target audience
Gitter is an open-source instant messaging system designed for communities centered around GitHub and GitLab repositories, providing a dedicated space for real-time communication tied to software projects. It facilitates discussions, technical support, and collaborative problem-solving directly within the context of code repositories, helping to build and sustain active developer networks.[2] The platform's core mission centers on connecting open-source contributors and software development teams through accessible chat rooms that promote transparent and ongoing engagement, essential for the iterative nature of project-based work. By prioritizing integration with Git workflows, Gitter enables users to reference issues, pull requests, and code snippets seamlessly during conversations, enhancing productivity without leaving the development environment.[6] Gitter's target audience primarily includes developers, open-source contributors, and project maintainers who require Git-integrated tools for efficient team coordination and knowledge sharing. This focus appeals to individuals and groups invested in collaborative coding, where quick, contextual exchanges can accelerate innovation and community growth.[2]Current status post-Matrix migration
The migration of Gitter to the Matrix protocol was completed on February 13, 2023, with all historical messages and content backfilled into dedicated Matrix rooms to preserve access to past discussions.[7] This process ensured that pre-migration data was seamlessly integrated, allowing users to view historical content through advanced room settings in Matrix clients.[7] As of 2025, Gitter operates natively on the Matrix protocol, utilizing thegitter.im homeserver and maintained by Element, the company behind the Element client.[1] The original Gitter platform and its proprietary APIs have been deprecated, with users directed to access services via the Gitter web app at app.gitter.im or compatible Matrix clients such as Element.[7][1] This shift emphasizes interoperability, end-to-end encryption, and decentralized messaging standards inherent to Matrix.[1]
Gitter communities are now available as bridged or native Matrix spaces, enabling ongoing developer conversations with features like Markdown and LaTeX support, while room permissions and memberships remain synchronized from the pre-migration era.[7][1] Email notifications are disabled by default but can be enabled in user settings, and the service continues to support sign-ins via GitHub, GitLab, or other providers for community management and growth.[7][1]
History
Founding and initial development
Gitter was founded in 2014 by childhood friends Mike Bartlett, who served as CEO, and Andrew Newdigate, who took on the role of CTO.[8][9][10] Launched as a chat platform deeply integrated with GitHub, Gitter emerged as a user-friendly alternative to IRC, designed specifically to support real-time communication among software developers working on collaborative projects.[2][3] Its core purpose centered on enabling developers to discuss code, share updates, and build communities efficiently.[11] From the outset, Gitter emphasized free public rooms linked directly to open-source GitHub repositories, allowing instant setup and access for project contributors without requiring separate invitations or complex configurations.[11] This approach led to rapid adoption in 2014, as open-source maintainers and teams increasingly turned to the platform for its seamless GitHub ties and ease of use over traditional IRC channels.[3][12] To fuel its expansion, Gitter raised $2.2 million in seed funding in October 2015 from Index Ventures, Kima Ventures, and Nexus Venture Partners, which enabled enhancements in community tools and scalability.[3][13] By 2016, ongoing community-building initiatives had resulted in thousands of active rooms, solidifying Gitter's position as a key hub for developer interactions in the open-source space.[2]Acquisition by GitLab
On March 15, 2017, GitLab announced its acquisition of Gitter, with the deal completed on the same day, marking a significant milestone for the chat platform originally developed as a standalone project in 2014.[2][6] Following the acquisition, Gitter was integrated into GitLab's ecosystem to bolster DevOps community tools, yet it maintained its independent operation without major rebranding or product consolidation.[2][14] Key enhancements included the introduction of "Login with GitLab" functionality and the ability to create chat communities directly from GitLab groups and projects, fostering seamless collaboration for users.[2][15] Additionally, all private conversations became free and unlimited, eliminating prior restrictions like the 25-user limit per room and ending paid subscriptions with refunds issued for recent charges.[6] Under GitLab's ownership, Gitter experienced notable growth, expanding from over 800,000 active developers at the time of acquisition to a community of 1.7 million users by 2020, while broadening its repository support to include GitLab alongside its original GitHub integration.[2][16] This period also saw Gitter's codebase fully open-sourced under the MIT License by June 2017, hosted on GitLab.com to encourage community contributions and self-hosting options.[6][2]Acquisition by Element and migration to Matrix
On September 30, 2020, Element, the company behind the open-source Matrix protocol, acquired Gitter from GitLab to integrate it into the Matrix ecosystem and expand developer adoption of decentralized communication standards.[17][4][16] This move followed GitLab's earlier acquisition of Gitter in 2017 and aimed to leverage Matrix's federated architecture for enhanced interoperability across chat platforms.[16] The acquisition announcement outlined a strategic migration plan to transition Gitter's approximately 1.7 million users to Matrix, emphasizing open standards to enable seamless communication without proprietary lock-in.[4][17] Element committed to maintaining Gitter's developer-focused features while replacing the existing third-party bridge with native Matrix connectivity, allowing direct federation between Gitter rooms and Matrix servers.[16][5] Key milestones in the migration included the launch of native Matrix support on December 7, 2020, which made all public Gitter rooms accessible via Matrix and enabled Gitter users to interact directly through Matrix clients.[5] This was followed by the decommissioning of the legacy Gitter bridge on April 21, 2021, to fully transition to the native implementation and ensure long-term stability.[18] By February 13, 2023, Gitter completed its full migration to a native Matrix client, preserving community history and continuity for existing rooms while phasing out the original Gitter applications.[7] As of 2025, Gitter continues to operate fully integrated with Matrix.[1]Original Features
Core chat functionalities
Gitter provided real-time messaging capabilities within project-specific chat rooms linked to GitHub or GitLab repositories, enabling developers to engage in instant discussions tied to their codebases.[19][20] Messages supported rich formatting via Markdown, including syntax-highlighted code blocks for various programming languages, and LaTeX mathematical notation using dollar sign delimiters (e.g., E=mc^2).[21][22] Users could also drag and drop files into rooms for upload and sharing.[23] These rooms allowed users to create dedicated spaces for individual repositories or organizations, with public rooms accessible to anyone and private rooms restricted to repository members or invited participants.[24] Real-time updates ensured that messages appeared instantly for all participants, supporting continuous conversation with unlimited message history preserved in every room.[21] Users could send messages using standard keyboard shortcuts, such as Enter for quick replies in chat mode or Ctrl+Enter for formatted input in compose mode.[21] To organize discussions, Gitter introduced threaded conversations in May 2020, allowing users to branch off from main room chats by selecting a message's dropdown menu and starting a thread.[25] This feature helped manage multiple subtopics in busy rooms, with threads viewable and replyable in a dedicated feed, though mobile support was limited to inline viewing via browser.[21] Search functionality enabled users to query across rooms and messages using a dedicated interface (accessible via magnifying glass icon or Ctrl/Cmd + S), supporting filters likefrom:username for sender-specific results, text:@username for mentions, date ranges with sent:[start end], and logical operators such as OR for broader queries.[21]
Notifications in Gitter were customizable to alert users on room activity, with options for all messages, direct mentions only (@username), or announcements via @/all, configurable through slash commands like /notify-all or /notify-mute.[21] These notifications were inherently tied to GitHub and GitLab events through room associations, displaying the latest repository activity—such as commits and issues—alongside the chat interface to keep users informed of project updates in real time.[19]
Room owners, typically repository administrators, had access to moderation tools including the ability to delete messages from any user, add or remove other admins via a permissions modal, and restrict room access to specific GitHub or GitLab users.[24] Private rooms supported user roles that inherited permissions from the linked project or group, ensuring controlled access without altering the room's security settings post-creation.[24] Room owners could also export chat data or delete the room entirely if needed, providing essential management options for community oversight.[24]
Integrations and mobile apps
Gitter provided native integrations with GitHub, enabling automatic notifications for repository events such as issues, pull requests, commits, and mentions directly within associated chat rooms, fostering real-time collaboration for open-source projects.[19] Following its acquisition by GitLab in 2017, similar seamless integrations were extended to GitLab repositories, inheriting permissions and delivering notifications for issues, merge requests, and other activities to streamline developer workflows.[2][25] The platform also featured a native IRC bridge launched in early 2014, allowing users to join Gitter rooms via standard IRC clients like Adium or Colloquy, which bridged conversations between the two protocols for broader accessibility.[26] While direct native support for Slack was limited, Gitter enabled bridging to Slack through third-party tools like Matterbridge, supporting notifications and message relay across platforms.[27] These integrations built upon Gitter's core chat functionalities to connect developer discussions with external services. Official mobile applications for iOS and Android were available by mid-2015, providing cross-device access to chat rooms with support for push notifications to alert users of new messages, mentions, and room activity even when the app was not actively open.[28] The apps mirrored the web experience, allowing participation in ongoing conversations on the go. Third-party integrations were facilitated through incoming webhooks, enabling tools like Jenkins for CI/CD pipelines to post build statuses, test results, and deployment updates directly into Gitter rooms as formatted messages.[9] This webhook system supported a range of services, including Travis CI and Heroku, allowing customized notifications without requiring custom development.[9]User registration and management
User registration on the original Gitter platform was facilitated exclusively through OAuth 2.0 authentication with GitHub, requiring users to authorize Gitter to access their GitHub profile and repository information during signup.[29][30] This process ensured that user identities were tied directly to their GitHub accounts, providing seamless integration for developer communities. Prior to 2017, no standalone email-based signup option was available; registration relied solely on OAuth providers like GitHub and Twitter.[6] Following the 2017 acquisition by GitLab, OAuth support was extended to include GitLab accounts, allowing users to register using either GitHub or GitLab credentials while maintaining compatibility with existing Twitter logins.[6] Accounts created via these methods were inherently linked to the user's repositories on the respective platforms, enabling personalized access to chat rooms associated with those repositories—for instance, users gained entry to private rooms tied to projects where they had collaborator or member permissions.[31][32] Gitter provided users with basic privacy controls, including the ability to mute or block other users to hide their messages in rooms, helping manage interactions and reduce unwanted notifications.[33] Additionally, users had options to deactivate their accounts through the platform's settings interface, which would remove their access to rooms and associated data. This account management approach played a key role in granting or revoking access to community chat rooms based on repository affiliations.Technical Implementation Pre-Migration
Architecture and backend
Gitter's backend was constructed as a monolithic Node.js application, leveraging the runtime's event-driven, non-blocking I/O model to efficiently manage high-throughput real-time interactions typical of chat services.[34] MongoDB served as the primary database for persistent storage, accommodating the flexible schema requirements of user data, room structures, and message histories in a document-oriented format.[34] Redis complemented this setup by handling caching, session management, and real-time pub/sub messaging, which enabled rapid dissemination of updates across connected clients without overloading the primary database.[34] Real-time communication relied on WebSockets for establishing persistent, full-duplex connections, allowing seamless delivery of messages and notifications to support dynamic, multi-user conversations.[34] The overall architecture supported scalability through horizontal scaling of Node.js instances, Docker-based deployment for containerization, and integration with auxiliary services like Elasticsearch for search indexing and Neo4j for recommendation features, enabling the platform to manage substantial loads during peak usage.[34] Following its acquisition by GitLab in 2017, the core codebase was released as open source under the MIT license.[2]API and developer tools
Gitter provided a RESTful API that enabled developers to programmatically interact with the platform, including managing rooms, posting messages, and handling user interactions. The API, hosted athttps://api.gitter.im/v1/, supported operations such as listing rooms via GET /rooms, retrieving room details with GET /rooms/:roomId, and fetching or sending chat messages through GET /rooms/:roomId/chatMessages and POST /rooms/:roomId/chatMessages, respectively. For user interactions, endpoints allowed retrieval of user information, such as GET /user, which returned details like username and associated GitHub account. These features facilitated automation, bot integration, and custom applications tied to GitHub repositories.[35]
Authentication for the API relied on OAuth 2.0 tokens, obtained through Gitter's authorization flow linked to GitHub accounts, as Gitter required GitHub login for user registration. Developers registered applications at https://developer.gitter.im/apps to receive a client ID and secret, then redirected users to https://gitter.im/login/oauth/authorize for authorization code exchange, yielding a Bearer access token used in API requests (e.g., Authorization: Bearer {{token}}). Personal access tokens were also supported as OAuth tokens for simpler integrations, ensuring secure access tied to the user's GitHub identity without sharing passwords. The API enforced rate limiting to prevent abuse, though specific limits were not publicly detailed in documentation; requests exceeding thresholds returned error responses.[36]
In addition to the core REST API, Gitter offered a Streaming API for real-time message reception and a Faye endpoint for activity feeds, complementing the RESTful operations for dynamic applications. Developers could leverage third-party libraries to simplify integration, particularly in JavaScript, enabling bot development and custom event handling. These tools were essential for extending Gitter's functionality pre-migration, with the backend architecture supporting efficient API operations through Node.js and related services.[37]
Gitter on Matrix
Migration process and timeline
The migration of Gitter to Matrix began with the establishment of native connectivity in December 2020, following Element's acquisition of Gitter earlier that year.[5] Initially, this involved running a Matrix homeserver at gitter.im, where all public Gitter rooms were exposed natively via Matrix room aliases in the format#org_repo:gitter.im. To enable seamless interaction, the integration used virtual users—functionally similar to Matrix puppets—to represent Gitter users on the Matrix side, allowing messages to appear as if sent directly from the original authors rather than a bot. This setup supported dual-room syncing for ongoing conversations, bridging live activity between Gitter and Matrix while preserving features like edits, replies (mapped to Matrix threads), deletes, file transfers, Markdown formatting, emojis, and mentions.[5]
An older, less advanced Gitter bridge operating via @gitterbot:matrix.org reached end-of-life on April 21, 2021, and was replaced by the more robust native bridge on the gitter.im homeserver.[18] This transition ensured that most existing portal and plumbed rooms could be migrated automatically, with manual support available for public community rooms through contact with Gitter's support team. Over the subsequent years, the bridging evolved to handle incremental membership syncing as users participated in conversations, laying the groundwork for fuller integration.[18]
The process culminated in a comprehensive migration announced on January 16, 2023, with full historical backfill completed by February 13, 2023.[38][7] This phase imported all pre-existing Gitter message history—spanning from the platform's inception in 2014 up to the bridging start in 2020—into dedicated "historical" Matrix rooms on the gitter.im server, separate from the live bridged rooms to avoid performance issues during ongoing chats. Users could access this archived content via room settings in the advanced section, ensuring complete preservation of past discussions for public and private rooms alike.[7][39]
Following the migration's completion in February 2023, the legacy Gitter servers and applications were phased out, with the original Gitter web and desktop clients replaced by a customized instance of Element at app.gitter.im.[7] Access to legacy content was redirected to corresponding Matrix spaces and rooms, allowing users to sign in via the new interface for continued use without disruption. Scheduled maintenance on the gitter.im homeserver in late April 2023 further stabilized the post-migration environment.[40][7]