Why I Built My Own Image Editor

Cowpaths to Solutions

What would compel a sane person to spend their weekend building their own image editing software? Well, let me tell you why I went down this rabbit hole...

The Power of Watching Real Users

Here's the thing about the best user experience technique – it's actually pretty simple: just watch how your customers actually use your product. I know, I know, it sounds obvious, but trust me, it's a humbling experience that'll show you all your design flaws. Plus, it's an amazing opportunity to discover things you never saw coming.

When you notice that certain unsupported behaviors keep happening over and over, we call those "cowpaths" (or "desire paths" if you're feeling fancy). And here's where it gets interesting – you can score some huge UX wins by "paving the cowpath," basically building features that support what people are naturally trying to do. A few months back, I spotted one of these cowpaths in our data. Some customers would disappear from our app for several minutes, then come back and upload a photo with text slapped on it. I was curious – where were they going and why were they gone so long?

So I decided to play detective and walk through what they were probably doing using Canva.

The 30-Step Process

Here's what it takes to add text to an image using Canva.

  1. Navigate to canva.com
  2. Log in (if not already signed in)
  3. Tap "Create a Design"
  4. Tap "Upload"
  5. Drag in a photo
  6. Tap "Use in a new design" (not "Edit image" – a common mistake)
  7. Pick "Custom Size"
  8. Click "Create new design"
  9. Hover over the "Text" icon in the left bar
  10. Tap "Add a text box"
  11. Type in the desired text
  12. Select the text
  13. Tap the "Effects" button in the toolbar
  14. Pick "Shadow" and choose black color from the left panel
  15. Tap on the font button in the toolbar
  16. Pick a font from the left panel
  17. Resize and reposition the text
  18. Tap "Elements" to add a shape
  19. Add a square
  20. Resize and position it
  21. Tap on the color button
  22. Tap on "Add a new color"
  23. Select a color from brand guidelines
  24. Tap the transparency button in the toolbar
  25. Adjust the transparency
  26. Go to File → Download
  27. Tap the Download button
  28. Return to our app
  29. Find the downloaded file
  30. Drag the file into our application

Thirty steps just to add some text to an image! I mean, come on – there's definitely room for improvement here, right? 😏

Now, before you think I'm throwing shade at Canva – I'm totally not! It's one of the most popular graphic design tools out there for a really good reason. But here's the thing: like any tool that tries to do everything for everyone, it can get pretty complex. All that complexity is just the price you pay for having so many features packed in. At every single step, the biggest headache is just trying to find the right button or menu item you need.

Our customers only need a handful of specific things. We needed something way simpler and more focused on what they actually want to do.

The Landscape

I looked around to see what other people had built, and honestly? Everything I found was either way too complicated, super buggy, or just completely broken on mobile.

So, I built my own image editor. I know, I know, it sounds like a crazy weekend project, but it was an opportunity to make something that does exactly what our users need, without all the extra fluff that just gets in the way. It still needs tons of UX love before it's ready for prime time, but hey, it's a start!

The Result

With our new built-in image editor, things are soooo much better. Sure, there are still plenty of rough edges to smooth out, but it's already way easier to use and much faster than that crazy 30-step external dance.

It's pretty cool how going from that nightmare 30-step process to something streamlined really shows the magic of building exactly what your users need, instead of trying to make them jump through hoops with generic tools.

Solving the Text Editing Challenge

So while I was building this thing, I ran into this interesting little problem with text editing. You know how normally you can just drag text layers around wherever you want? Super easy, right? Well, here's the catch – when that text goes into "edit mode" (like when you're actually typing), suddenly that drag-and-drop gets hijacked for selecting text instead of moving the whole thing around.

I spent some time checking out how other editors handle this, did some user testing, and we ended up with what I think is a pretty clever two-part solution:

The Sneaky UX:

We made a draggable area that's just a few pixels wide around the outer edge of the text box. It's totally invisible, but power users who've used other image tools kind of expect this to work – it's like a secret handshake for experienced designers.

The Obvious UX:

For folks who are newer to graphic design, we added a visible drag handle right next to the text box. Way more obvious, plus it gives you a bigger target to tap – super helpful when you're trying to use this thing on your phone with fat fingers!

The drag handle still needs some work though, because right now it looks way too much like a button. We want people to know they should drag it around, not just tap it and wonder why nothing happened.

The Bigger Picture

So here's what I learned from this whole adventure: sometimes the best move is to just build exactly what your users need instead of trying to force-fit existing tools that kinda-sorta work. When you actually watch what people do (not what you think they should do), find those natural patterns they're creating, and then build solutions around those patterns – that's where the magic happens.

This whole journey from "hey, why are people disappearing from our app?" to "let's ship our own custom solution" really drives home how much the little details matter. Sometimes the most valuable insights come from just paying attention to what's actually happening, rather than what we assume should be happening.

And honestly? It's been pretty fun building something from scratch that solves a real problem. Sure, it ate up my weekend, but seeing users zip through their workflow in a fraction of the time makes it totally worth it.