CodeFlow is a Next.js application that visualizes the structure and relationships within a codebase as an interactive graph. It helps developers understand code organization, dependencies, and flow by representing files, functions, classes, components, and more as nodes and edges.
- Visualizes code structure as a graph (files, functions, classes, components, etc.)
- Interactive node selection with code preview (pending)
- Supports multiple node types with color-coded visualization
- Modern UI with dark/light mode support (pending)
- Multi Language support (JS/TS & Python for now)
┌────────────────────────────┐
│ User Browser │
└─────────────┬──────────────┘
│
▼
1. User enters/pastes Git repo link
│
▼
┌────────────────────────────┐
│ Next.js App (Frontend) │
└─────────────┬──────────────┘
│
2. App fetches repo code (via API or direct fetch)
│
▼
┌────────────────────────────┐
│ Code Parsers (TS/JS, │
│ Python, etc.) │
└─────────────┬──────────────┘
│
3. Parse files for structure (files, functions, classes, etc.)
│
▼
┌────────────────────────────┐
│ Graph Builder │
└─────────────┬──────────────┘
│
4. Build graph data (nodes/edges)
│
▼
┌────────────────────────────┐
│ Graph UI (D3/React) │
└─────────────┬──────────────┘
│
5. Render interactive graph
│
▼
┌────────────────────────────┐
│ AI Code Summary (LLM) │
└─────────────┬──────────────┘
│
6. User explores, selects nodes, previews code
│
▼
7. AI generates code summary for the selected file/node (on demand)
- Step 1: User provides a GitHub repo link.
- Step 2: The app fetches and downloads the codebase.
- Step 3: Parsers analyze the code for structure and relationships.
- Step 4: A graph is built from the parsed data.
- Step 5: The graph is rendered interactively in the browser.
- Step 6: User can click nodes to preview code and explore relationships.
- Step 7: When a user selects a file or node, the app can send the code to an AI model (LLM) to generate a summary or explanation, which is then displayed in the UI.
app/— Next.js app directory (pages, API routes, global styles)components/— React components for UI and graph renderinglib/parsers/— Code parsers for different languages (e.g., Babel for JS, Python parser)public/— Static assets (SVGs, images)README.md— Project documentation
- Install dependencies:
pnpm install # or npm install # or yarn install
- Start the development server:
pnpm dev # or npm run dev # or yarn dev
- Open http://localhost:3000 in your browser.
| Node Type | Hex Color | Closest Named Color | Description |
|---|---|---|---|
file | #69b3a2 | Green Blue / Sea Green | Represents a source code file |
function | #4285F4 | Google Blue / Vivid Blue | Represents a function definition |
class | #DB4437 | Google Red / Strong Red | Represents a class definition |
component | #F4B400 | Google Yellow / Vivid Yellow | Likely a React or UI component |
export | #0F9D58 | Jungle Green / Rich Green | Represents an exported symbol or entity |
import | #9e5fba | Amethyst / Medium Purple | Represents an import statement or module |
| (default) | #cccccc | Light Gray | Fallback/default for unknown or uncategorized types |
Pull requests and issues are welcome! Please open an issue to discuss major changes.