All posts
March 28, 20262 min read

I'm Building My Own Annotation Tool

There are plenty of great annotation platforms out there. But I wanted one that's fully local, where my data never leaves my machine. So I'm building ezAnnotate.

If you've read my other posts, you know I like building tools for the parts of computer vision that everyone needs but nobody enjoys. This one is about the biggest of those parts: annotation.

There are already some genuinely great tools for this. Roboflow, Ultralytics, CVAT, Encord, and others have all put serious work into making annotation better, and I have a lot of respect for what they've built. So this isn't me saying anyone's doing it wrong.

It's just that most of them, in one way or another, want your data to live somewhere else. You upload your images, you annotate in the cloud, and your dataset sits on someone else's servers. For a lot of people that's completely fine. For me, and I think for a fair number of others, it isn't always.

Sometimes the data is sensitive. Sometimes it's under an agreement that says it can't leave the building. And sometimes you just don't want your images going anywhere at all. That was the itch: I wanted an annotation tool that was fully local. No uploads, no accounts, no data leaving your machine. Full privacy, by default, not as a paid tier.

So I decided to build one. It's called ezAnnotate.

I'm keeping the how-it-works details to myself for now, but I can share the shape of it. There are going to be two versions:

  • A web version, for when you just want to open something and start labeling.
  • A desktop version, for when you want it running entirely on your own hardware with nothing touching the network.

Same idea behind both: your images and labels are yours, they stay with you, and the tool works whether or not you're online.

This one's still very much in progress, and I'm building it the same way I built everything else, by running into my own frustrations and slowly smoothing them out. I'll share more as it comes together.

If a private, local-first annotation tool is something you've wanted too, you're exactly who I'm building this for.