Introducing Catana

1 minute read


A TODO management companion for developers. Now in closed beta.


TODO comments written in codebases are a great way to quickly take notes directly in the code without switching context. It helps staying focused on the core problem you are trying to solve while keeping track of related issues you can think of spontaneously.

The problem with TODOs

TODOs tend to be forgotten and eventually end up unaddressed in your repositories for an extended time.

The accumulation of unaddressed TODOs contributes toward technical debt and the longer a TODO remains in your repository, the less likely it will be resolved. Did you know that the Linux codebase had over 3,000 TODOs, many written over a decade ago?

The approach Catana takes

Catana is a standalone service you connect on your GitHub repositories in one click. Once installed, new TODOs introduced in your codebase will be processed and recorded in the background by Catana. TODOs across all repositories in your GitHub organization will be displayed nicely in a UI. But there is more…

Catana dashboard
A TODO on the Catana dashboard

Catana aims to help developers address TODOs without swamping them with notifications sent at random times. Instead, Catana lets users declare an event directly on the TODO, which, when triggered, changes its state.

Catana notifying the TODO assignee
Notification sent by Catana when the event declared on a TODO is triggered.

Events are at the core of TODOs managed by Catana. Think of an event as an external condition you don’t necessarily control (a GitHub Issue or a Pull Request gets closed, a dependency you rely on gets updated, a file in your repository changes, a date has been reached …).

Catana takes an opinionated approach on how TODO should be introduced without enforcing a resolution time frame. You decide the condition to make a TODO addressable and Catana does the work to check when this condition is met.

Catana offers few events (detailed in the documentation site). The goal is to add many more, based on feedback and the needs of the programming community!


I’m launching Catana in closed beta to validate the functionality with some early users. A public beta will follow shortly after. I’m very much looking forward to hearing your feedback so if you’d like to participate in the private beta, please reach out 💙!