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/
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
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
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
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
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.




Top comments (0)