I built a visual tool for the Mikado Method

Struggling with Legacy Code and not enough time to clean it up?
⛑️️ My First Aid Kit can help you rescue any codebase quickly and safely!

🔗 Just searching for the link? nikado.app

I wrote about the Mikado Method already. It’s a practical technique for tackling unknown unknowns, which is common when you are dealing with a legacy codebase.

The idea is simple: instead of attempting a big change all at once, you decompose it into a graph of smaller tasks and work from the bottom up. You never stay in a broken state. You commit after each small win. You can stop anytime and ship what you have.

Wait, isn’t that just a fancy way to say “break things into smaller pieces”? 🤨

Almost. Here’s the key difference: you don’t have to know the smaller pieces in advance. Follow the recipe and you discover them by trying and failing. The “recipe” is just a guardrail to avoid getting lost in the weeds (way too common when the code is messy and untested). The growing graph artifact is your compass 🧭

If you’ve ever been 3 hours into a refactoring, 34 files changed, nothing compiles, and you’re not sure how you got here: that’s the exact trap this method prevents!

So, the Mikado Method is useful. But there was always one friction point…

The paper problem

In the article, I tell you to “grab a piece of paper.” I stand by it in general: it’s low-tech, low-friction, so you are more likely to apply the method without getting distracted with the tooling. I often start a Mikado graph on paper.

Now, in practice, it quickly hit some blockers:

  • My graph outgrows the paper quickly
  • I can’t easily share it with remote teammates
  • I can’t undo, rearrange, or collapse parts of it
  • and frankly… it quickly becomes hard to read 😄

I have been looking for simple tools to quickly build such graphs. Alas, nothing was satisfactory. Too complex, too slow, too much friction… I eventually ended up leaning on Mindmup for a while. It’s a mind-mapping tool, but that was the closest to the UX I was looking for.

Overall, here was my wish-list of key features:

  • I don’t want to micro-manage the layout
  • I want to create/delete/check tasks quickly
  • I want something fast that I can use offline
  • Sharing with others should be simple

Accessibility was a key factor: I would rather hit shortcuts to express my thoughts than clicking around.

Finally, if I was to build this, it should be simple to maintain. Less moving parts = better.

So I built Nikado

And it looks like that:

Screenshot of an actual graph I worked with

Nikado is a free, browser-based visual tool for the Mikado Method

It’s focused for the Mikado Method. In fact, it’s tailored to my usage of the technique. Thus, you can typically:

  1. Set a goal. Double-click the canvas or hit Enter, write down what you want to achieve.
  2. Decompose into sub-tasks. Tab from the main goal to create a sub-task. Enter to create a sibling. I made it easy to capture work as it shows up.
  3. Pick a sub-task to work on. Leaf tasks (the ones with no dependencies) are highlighted. Pick one, start there.
  4. Complete tasks, pick another. It’s easy to mark a task complete and navigate to the next one. Also easy to undo/redo if you got it wrong.
  5. Collapse noisy details. Finally completed a task with 8 sub-tasks? Collapse the nodes to keep the remaining work readable.
  6. And finally, share the link! The entire graph lives in the URL. Copy it, send it to a teammate, open it in another device, bookmark it…

There is no backend. No sign-up. No data stored anywhere except your browser’s URL bar. It’s just a tool to make my life easier, not yet another SaaS product. 👐

A few things I’m proud of

Keyboard-first

You can navigate the entire graph without touching the mouse. Arrow keys to move between tasks, Tab to add a sub-task, Enter for a sibling, Space to edit, etc.

I use it this way most of the time 🙂 ⌨️

The graph lives in the URL

Remember the screenshot I put above? Well, here’s the full graph.

This was a deliberate design choice. Your Mikado graph is serialized, compressed, and stored in the URL hash. That means:

  • Share it by copying the URL
  • Bookmark it in your browser
  • Paste it in a PR description for context
  • And mostly for me: no database or server to manage

Maybe someday someone will report they are hitting a limit… but so far it was good enough for my use-cases 😄

It works on mobile

On small screens, the graph wouldn’t be readable. So on mobile, Nikado switches to an indented tree view.

Same data, different layout. You can tap to select, check off tasks, collapse branches. It’s fully functional.

It’s open-source

👉 github.com/nicoespeon/nikado

You can send feedback, report issues, suggest improvements, see how it’s implemented and fork it if you’d like to.

”Pro” license?

If you start using the tool and you’d like to say “thank you”, I built non-essential-but-convenient features you can get with a Pro license.

For now, you can keep track of multiple graphs in parallel. They are stored in your browser. It is convenient if you use the tool on multiple goals, so you don’t have to track 1 browser tab / goal.

The Pro license is “pay-what-you-want” (min. $2, suggested $10). You can get one here. It’s a lifetime one.

Why “Nikado”?

The Mikado Method is named after the Mikado pick-up sticks game. My name is Nicolas.

“Nikado” is a playful twist (and the domain was available) 🙂

Try it

If you’ve never tried the Mikado Method, start here to learn the technique, then use Nikado to put it into practice.

If you already use the method, I’d love to hear how the tool works for you. What’s missing? What would make it better?

Hit me on Bluesky, LinkedIn, or directly on the GitHub repo.


Nicolas Carlo

Written by Nicolas Carlo who lives and works in Montreal, Canada 🍁
He founded the Software Crafters Montreal community which cares about building maintainable softwares.


Similar articles that will help you…

The key points of Refactoring

This book is a catalog of the bread-and-butter moves that can improve your coding game. Let's see what makes it a reference for any professional developer.

← Find more tips to work with Legacy Code