Caribou helps software teams manage long-term technical migrations in their projects. For example migrating from one networking library to another or migrating a codebase from one programming language to another. These changes usually happen over a span of a few months and without any tooling, they can be difficult to manage. It’s difficult to understand how much progress has been made, what is still left to do and who are the engineers helping move the migration forward. Caribou was built to solve these problems.
So how does it work? In simple terms, Caribou is a Github application which, after configured, monitors all the changes in your repository and displays a dashboard with the progress of specific migrations along with who is contributing to these migrations. Caribou allows you to define all sorts of migrations using an easy-to-use rules engine; for example changing the project architecture, replacing a library or changing some coding conventions. You can get inspired by our examples in the docs section.
Before building Caribou, we were working in a fast growing startup for a number of years. As part of managing our engineering teams, we wanted a way to see the technical improvements happening in the codebase and an easy way to recognise those engineers that work on these improvements. Unfortunately, we did not find anything that we could use off-the-shelf for this, and so we built Caribou!
Caribou is currently in Beta and is available for free. Please go ahead and give it a try! Let us know what you think!
This seems very useful. Any plans to support other hosted git providers, like gitlab? I've been needing something like this for a while but we're not using GitHub. I could hack and slash my way to a bad looking version of something lol me this but your dashboards look good and I cannot be trusted with UI/UX.
Thanks for your feedback! We are planning to add all the other popular git providers like gitlab, bitbucket etc. but we don't know exactly when. This will depend on the interest from our potential users, so if we see enough interest in Gitlab, we will do it soon :)
Would you be using Caribou in a professional setting or for your personal projects?
What migrations are you currently doing that Caribou can help you manage?
Professional. We actually regularly run into the problem of where team A updates some chunk of code that is consumer by a dozen or more applications and we need to track the update status of various consumers. I literally had another argument about it today because there was a required change that was announced but multiple parties missed the update and have brolen development pipelines. Being able to identify those internal projects and their update status would be really great for us.
I see. Is the code that gets updated by team A some type of versioned library? And does it sit in the same codebase as the other applications that consume it?
Yes. Golang libs, java libs, terraform versions, container versions, helm library charts, etc. The code is all within the same gitlab org but we're not a monorepo. We have a regular problem tracking consumer updates.
We are currently thinking about migrating our Android app to Jetpack Compose, so this tool might be useful in tracking that really looooong migration. What types of migrations does it support? Is it Android only? Does this work with open source repositories?
I looked through your site, and was a bit confused. How does this help you monitor technical debt specifically? This seems like traditional engineering issue tracking but I may be missing something.
Technical debt findable with those tools could be a less-than-ideal language choice, “fix this crap” comments, bad architecture identified by certain statements, etc. A traditional issue tracker would require identifying and marking those instances for refactor.
Thanks for your feedback! Caribou tracks files that match specific custom rules that you set. So you will need to set the rules to match the ‘tech debt’ in your codebase. Once you set these rules, Caribou will track the decrease/increase of this tech debt and who is contributing to this decrease/increase.
For example, you are using a deprecated library in your codebase and you need migrate it to another library. The old library is considered tech debt. You can set a rule to monitor the usages of the old library in your codebase. As your team starts migrating from the old library to the new library, Caribou will detect these changes and will show you the progress in the dashboard together with information on who is contributing to this improvement.
11 comments
[ 3.3 ms ] story [ 34.6 ms ] threadSo how does it work? In simple terms, Caribou is a Github application which, after configured, monitors all the changes in your repository and displays a dashboard with the progress of specific migrations along with who is contributing to these migrations. Caribou allows you to define all sorts of migrations using an easy-to-use rules engine; for example changing the project architecture, replacing a library or changing some coding conventions. You can get inspired by our examples in the docs section.
Before building Caribou, we were working in a fast growing startup for a number of years. As part of managing our engineering teams, we wanted a way to see the technical improvements happening in the codebase and an easy way to recognise those engineers that work on these improvements. Unfortunately, we did not find anything that we could use off-the-shelf for this, and so we built Caribou!
Caribou is currently in Beta and is available for free. Please go ahead and give it a try! Let us know what you think!
Would you be using Caribou in a professional setting or for your personal projects? What migrations are you currently doing that Caribou can help you manage?
Technical debt findable with those tools could be a less-than-ideal language choice, “fix this crap” comments, bad architecture identified by certain statements, etc. A traditional issue tracker would require identifying and marking those instances for refactor.
For example, you are using a deprecated library in your codebase and you need migrate it to another library. The old library is considered tech debt. You can set a rule to monitor the usages of the old library in your codebase. As your team starts migrating from the old library to the new library, Caribou will detect these changes and will show you the progress in the dashboard together with information on who is contributing to this improvement.
Does this make sense?