When I first came across
Sourcetrail,
it was a commercial offering from Coati Software. I found it interesting
enough at the time to play with the non-commercial version briefly, and
came away with a generally positive impression, but no real use-case.
Much later, I needed to quickly understand parts of the haproxy
internals in order to track down an urgent production problem, and I
remembered the Sourcetrail I'd installed but never really used. Having
already spent a while using grep to build up a mental model bit by bit,
and finding it slow going, I tried Sourcetrail too.
Sourcetrail really did help me to navigate through haproxy's complex
code (which is not a criticism—it's obviously high-quality code, but
takes a dedicated effort to follow). I was able to understand enough of
the code to correlate it with the huge tcpdump traces I was analysing,
and it didn't take me long to find a solution. I am confident that I
would have reached the same solution with grep in the end, but I was
pleasantly surprised at how quick and enjoyable the journey was with
Sourcetrail's thoughtful visualisations.
Here's a presentation on software visualisation and Sourcetrail's design
by the founder of Coati Software,
Eberhard Gräther.
Unfortunately, the company was unable to sustain its operations and
decided to make Sourcetrail available as an open source project in 2019.
The developers are
requesting support on Patreon,
but the campaign has not attracted enough patrons in the past year to
sustain development in the long term.
I've used Sourcetrail to find my way through several complex code bases
(including Postgres, Ansible, and pgbouncer), and I believe it's ahead
of its time in many ways. Please try it out, and support its development
if you feel the same way — either by contributing your time
towards fixing bugs and developing features
on Github, or
by
contributing on Patreon.