An interactive full-stack developer tool that helps engineers understand unfamiliar repositories faster. Paste a GitHub URL or upload a local codebase, then explore a visual architecture map with AI-style summaries, onboarding guidance, and natural-language search.
Next.js · React · TypeScript · PostgreSQL · React Flow · AI-ready search
- Interactive repository graph for folders, files, modules, and relationships
- AI-style summaries for repositories, files, and major modules
- "Start Here" onboarding flow for new contributors
- Natural-language search for questions like "where is authentication handled?"
- File detail pages with purpose, key functions, imports, relationships, and source preview
- GitHub repository ingestion
- Local upload flow for structured codebase input
- Clean full-stack architecture with separate analysis, AI, search, and persistence layers
- Seeded demo workspace so the app is explorable immediately
Codebase Memory Map ships with a built-in demo repository called Pulse Commerce.
Use it to:
- open the repository overview
- jump into the architecture map
- search for concepts like
auth,checkout,routing, orworker - inspect individual files and see how they connect to the rest of the system
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript |
| Backend | Next.js App Router + route handlers |
| Database | PostgreSQL, optional pgvector |
| Visualization | React Flow |
| AI Layer | Modular summarization + semantic-ready search services |
| Styling | Custom CSS system and responsive UI |
- Node.js 20+
- PostgreSQL 15+ recommended
git clone https://github.com/tymofiikalnytskyi/codebase-memory-map.git
cd codebase-memory-mapnpm installcp .env.example .env.localOptional environment variables:
DATABASE_URLfor PostgreSQL persistenceGITHUB_TOKENfor improved GitHub API reliability and rate limitsOPENAI_API_KEYfor future real LLM/embedding integration
npm run devOpen http://localhost:3000.
Codebase Memory Map turns a repository into something explorable instead of implicit.
- A user submits a GitHub URL or local upload.
- The ingestion layer normalizes the repository input.
- The analysis pipeline parses files, folders, imports, functions, and metadata.
- The graph builder creates nodes and edges for the visual map.
- The AI/search layer generates summaries, onboarding guidance, and semantic-style results.
- The UI renders the overview, interactive map, search experience, and file-level drilldowns.
This makes it easier to:
- identify entry points quickly
- trace important flows through the codebase
- understand how modules connect
- onboard into unfamiliar systems faster
The MVP currently supports:
- a single uploaded source file
- a JSON file containing an array of
{ path, content }objects
Example:
[
{
"path": "src/auth/session.ts",
"content": "export async function getSession() { return null; }"
},
{
"path": "src/app/page.tsx",
"content": "import { getSession } from '../auth/session'; export default function Page() { return null; }"
}
]codebase-memory-map/
├── app/
│ ├── api/
│ │ ├── ingest/
│ │ │ └── route.ts
│ │ └── repositories/
│ ├── repositories/
│ │ └── [repositoryId]/
│ │ ├── file/
│ │ ├── map/
│ │ └── page.tsx
│ ├── layout.tsx
│ └── page.tsx
├── components/
│ ├── map/
│ │ ├── memory-node.tsx
│ │ └── repository-map.tsx
│ ├── marketing/
│ ├── ui/
│ ├── app-shell.tsx
│ ├── file-detail-view.tsx
│ └── repository-workspace.tsx
├── lib/
│ ├── server/
│ │ ├── ai/
│ │ ├── analysis/
│ │ ├── db/
│ │ ├── github/
│ │ ├── search/
│ │ └── storage/
│ └── shared/
├── LICENSE
├── package.json
└── README.md
lib/server/analysishandles parsing and graph constructionlib/server/aihandles summaries and semantic-ready logiclib/server/searchhandles natural-language query orchestrationlib/server/githubhandles remote repository ingestionlib/server/dbhandles persistence contracts and schemacomponents/mapcontains the dedicated repository mapping experience
The codebase is intentionally structured so parsing, search, AI summarization, and UI remain separate and extensible.
- Real embeddings stored in PostgreSQL with
pgvector - Real LLM-generated summaries instead of heuristics
- Zip upload and local folder ingestion
- Better graph layout for large repositories
- Multi-language parser support beyond JavaScript and TypeScript
- File importance ranking via graph centrality
- Architecture diffs and repository history awareness
Tymofii Kalnytskyi
CS & AI Student @ Adelphi University
GitHub · LinkedIn
MIT - feel free to use this as a starting point for your own projects.