DEV Community

Sigismundsblade
Sigismundsblade

Posted on

I Built MapFolder: A Visual Map for Exploring Confusing Codebases

Every developer has experienced this:

You clone a repository, open it, and immediately get lost.

The folder structure tells you where files live, but it doesn't tell you how they're connected. Which files import each other? What modules are central? What parts of the project are isolated? Where should you start reading?

I ran into this problem repeatedly when exploring unfamiliar projects, so I built MapFolder.

MapFolder scans a codebase and generates an interactive relationship map showing how files, dependencies, and symbols connect.

The Problem

Traditional file explorers show hierarchy:

src/
├── game/
├── utils/
├── models/
└── api/
Enter fullscreen mode Exit fullscreen mode

But hierarchy doesn't explain relationships.

A file buried deep in a project might actually be the most important file in the system.

I wanted a way to answer questions like:

  • Which files are imported the most?
  • What depends on what?
  • Where are the key entry points?
  • What symbols are defined in each file?
  • How are modules connected across the project?

What MapFolder Does

MapFolder analyzes a project and extracts:

  • Files
  • Imports
  • Dependencies
  • Symbols
  • References
  • Relationship graphs

The result is an interactive visualization of the codebase.

Relationship Map

RelationShip Map

This view shows how files connect to each other through imports and dependencies.

Large projects often become much easier to understand when viewed as a graph rather than a folder tree.

Exploring Files

File List

Each file includes useful metadata such as:

  • Import count
  • Symbol count
  • Line count

This makes it easier to identify high-impact files before opening them.

Inspecting a File

Class Inspector

Selecting a file reveals:

  • Language
  • Line count
  • Imports
  • Declared classes
  • Functions
  • Other symbols

Instead of hunting through source files manually, you can quickly understand what a module contains.

Understanding Relationships

RelationShip Data

MapFolder also shows:

  • Incoming imports
  • Outgoing imports
  • Dependencies
  • Reference tokens

This helps answer the question:

"Why is this file important?"

by showing exactly how it fits into the rest of the codebase.

Built For

I originally built this for:

  • Learning unfamiliar repositories
  • Understanding legacy projects
  • Visualizing architecture
  • Finding highly connected modules
  • Exploring personal projects after not touching them for months

Looking for Feedback

I'm curious how other developers approach understanding unfamiliar codebases.

Would a visualization tool like this fit into your workflow?

If you have ideas, feature requests, or criticism, I'd love to hear them.

GitHub:
https://github.com/Sigismundsblade/MapFolder

Top comments (0)