Development / Open Source

CodeSee Helps Developers ‘Understand the Codebase’

18 Oct 2021 3:00am, by

As a developer, you’ve likely faced one problem again and again throughout your career: struggling to understand a new codebase. Whether it’s a lack of documentation, or simply poorly-written and confusing code, working to understand a codebase can take a lot of time and effort, but CodeSee aims to help developers not only gain an initial understanding, but to continually understand large codebases as they evolve over time.

“We really are trying to help developers to master the understanding of codebases. We do that by visualizing their code, because we think that a picture is really worth a thousand words, a thousand lines of code,” said CodeSee CEO and co-founder Shanea Leven. “What we’re trying to do is really ensure that developers, with all of the code that we have to manage out there — and our codebases have grown exponentially over the past decade — that we can deeply understand how our code works in an instant.”

Earlier this month, CodeSee, which is still in beta, launched OSS Port to bring its code visibility and “continuous understanding” product to open source projects, as well as give potential contributors and maintainers a way to find their next project. OSS Port lists open source projects, rather than alphabetically as on GitHub, by characteristics such as the primary languages used there, the developer focus, such as iOS, Android, frontend, or “social activism”, and even by the types of roles the project is seeking in those potential contributors.

In addition, OSS Port gives each open source project access to one of its core offerings: a code map of the project itself, which Leven said they would guarantee are available to open source projects forever.

“It is our commitment to the open source community to make sure that we provide a community that really helps maintainers to onboard contributors, because maintainers have enough on their plates already, and onboarding should be really, really easy for them too,” said Leven.

The code maps, which are embedded into the profile pages of each open source project, are created automatically with a GitHub action that parses the project repository to show how files and folders are connected. The map, however, is just one layer of understanding that CodeSee works to provide.

In addition to maps, CodeSee users can create tours to help with onboarding or to walk developers through tricky parts of the codebase. Similarly, CodeSee offers an “auto insights” feature that monitors a codebase for changes and shows developers what’s new within the codebase as things change in real time.

“At any point, you can just turn on this toggle and see where the latest activity is happening. That kind of gives developers a really quick way to say ‘How should I prioritize? Where should I start?’ You can see where all the latest activity is, and how old the files are,” explained Leven.

While the code maps and tours can help with that initial understanding and onboarding, Leven said that it is also important to provide for the continuous understanding of the code base, which they do with pull request diagrams.

“We show you how your change, as you start to change the codebase, fits in with the larger architecture. We don’t just drop a developer after they start a new company or a new codebase. For the first couple weeks, we use these PR maps as a sanity check,” explained Leven. “Also, it lends that same understanding that the developer had when they made the change to their teammates, so that their teammates can get a summary overview of how their change fits into the larger architecture. So, we continuously support them to make sure that they deeply understand how their code works.”

The PR diagrams currently appear as an image in the pull request on GitHub — which CodeSee is a technology partner of — but Leven said they hope to provide interactive images in the future, with additional code repository support in the future as well. At this time, CodeSee also works with JavaScript, TypeScript, Go, Java, and Python, with Rust support on the way, and Leven said that more interactivity, language support, and general availability are all on the horizon.