About
The idea and story of making, from open source libraries to full-grown application
What is Codecrumbs
Codecrumbs is a set of tooling designed to help with investigation & documentation of a big codebase. Using it one can create interactive schemes to learn and explain how features binds to the actual code. See examples here.
What problem Codecrumbs solve
Problem:
It is hard to read code. We learn codebase slowly because moving from application logic to source code requires too much concentration and abstract thinking - to find that key places in source code which defines one feature you will jump through hundred files for other features, trying to filter out noise and stick to the code which matters. And the bigger project gets - harder it is, until the point when the only way to figure out is to ask author of that code. You are lucky if they remember why the code was written, or, if they even still work on same project. Obviously - it's not very good strategy.
Solution:
Codecrumbs helps to fill the gap between code and application logic by creating interactive schemes that explain how features binds to the actual code. Easy to draw and share.
Word from the founder
Hi there, my name is Bohdan and reading source code is my hobby and passion.
Few years ago I decided to learn React source code. It took quite some time, but as a result I published the open-source book “Under the hood ReactJs” which explains entire codebase with flowcharts.
First thing I realised after that I need some tool to generate flow chart images from JavaScript code. So a year later I built an open-source tool for that called “js2flowchart” which automatically generates flowcharts from JavaScript code.
Later, I discovered I still need something broader to cover entire codebase, something that can help marking important places in code, connections between files, etc. That's why I built “codecrumbs” (name is derived from “code” and “breadcrumb”). You can check out open-source version on Github.
While keep adding more features and learning more about the topic I got the vision that just a "library" won't solve it, it's time to step up the game and build an application with more systematic approach...
Follow alongside to see where it leads us.