How Cesium Uses GitHub

GitHub Team
Open source lives or dies by its community
Growing a community on GitHub
Community access—and platform transparency—made GitHub Team the obvious choice. "We also wanted to be as transparent as possible, which is one of the key reasons that we were able to grow our open source community early on. GitHub was a big piece of that growth, and it's shaped the company ever since." Quickly, Cesium saw their community grow on GitHub. "We got our first outside contributions. Then we also had people on our forum answering other questions. They were interacting with other people who weren't developers," said Amato. Now, the forum has over 36,000 posts in its history and the company's largest project, CesiumJS, is open source.
Open source powers both their community and commercial success. Built on top of the team's open source code, Cesium's analytics and tools—like Cesium Stories—provide geospatial modeling and data visualizations. With Cesium Stories, users can upload geospatial data and 3D models. Then, Cesium ion, a platform to create and host 3D content in the cloud, will process the data in a way that is ideal for streaming or for use in geospatial presentations.
The company has also partnered with Komatsu, a leading manufacturer and supplier of industrial equipment. Using sensors on Komatsu's construction equipment combined with data from drones and other sources, Cesium creates 3D virtual construction sites that reflect exactly what's happening on the ground and construction progress over time.
With such precise location services, code quality and reliability are crucial. GitHub integrates with the continuous integration (CI) tools Cesium already uses—making it possible for Cesium to automatically perform quality tests and update environments. This ensures that releases are always stable.
Continuous integration and deployment at scale
"We're standardized on Travis CI for our continuous integration. Almost every branch and every repository we have has Travis CI-enabled," explained Amato. Originally, the company made CesiumJS available on NPM. After getting one million downloads, they decided to transition their private packages to GitHub and keep open-source packages on NPM. "Cesium also uses GitHub Packages extensively in production," shared Shehzan Mohammed, Director of Product Management. "By tying directly to our repositories, GitHub Packages gives Cesium an automated, secure path to continuous integration and deployment, testing, and delivering products to our customers and millions of open source users."
Along with streamlined automation, GitHub's flexibility allows Cesium to deploy their platform frequently and perform updates as often as they see fit. "We've done four or five deployments a day when things are moving along quickly," said Amato. "This makes it easier to check out in-progress work across our ecosystem because we have several repositories that depend on each other. If one team is working on a new feature that is one GitHub package, we can easily use that package somewhere else, even though it's not in production yet."
By tying directly to our repositories, GitHub Packages gives Cesium an automated, secure path to continuous integration and deployment, testing, and delivering products to our customers and millions of open source users.
Once updates are in production, Cesium uses GitHub's branch protection features to manage releases. "For example, you can't do a merge unless the branch and master are in sync with each other. You can't do a merge if the build is failing," explained Amato. "We've had a lot of success using GitHub for content hosting and editing, and then publishing directly."
Stable releases go beyond just good user experience. As open source, every release is an opportunity for Cesium to demonstrate the quality of their work to other companies. Then, when these companies want to develop an app or an end-to-end solution, Cesium is top of mind.
GitHub as company culture
This same transparency extends to inside the organization as well. Cesium uses GitHub as a repository for user guides and onboarding guides. Beyond that, the use of email is actually discouraged. All documentation and internal communication can be found on GitHub.
As Cesium continues to find new applications for this technology, their commitment to community is still at the forefront. "We're working on building and helping. We want to make sure that we're innovating in the right ways with what we're doing in our specialty here at Cesium," said COO Bonnie Bogle. That means continuing to rely on contributors and finding solutions that benefit everyone in the community. The company plans to continue working with their community to solve problems and push the entire field forward.
Cesium also sees GitHub as central to their company culture. Without it, Amato says they may not be where they are today. "It's hard to imagine what our company would be like without GitHub, because it has shaped us from the beginning. All of the things that GitHub provides in concept work, peer review, and centralized communication are important. I feel like if GitHub wasn't around in 2011, and we went with another solution, we would be in a fundamentally different place."


