OW
cd ..~/projects/repolens

case study 01 / Developer tooling

RepoLens

An AST-based repository explorer that turns source files into an interactive dependency map with searchable symbols, onboarding guidance, and lightweight risk signals.

status
In progress
ownership
Individual
stages
06
stack
05
  • Next.js
  • TypeScript
  • TypeScript Compiler API
  • React Flow
  • Tailwind CSS

Project overview

01

the problem

Unfamiliar JavaScript and TypeScript repositories are slow to understand when structure, symbols, and dependencies must be traced by hand.

02

my contribution

Designed and implemented the full project, from repository scanning and TypeScript AST traversal to graph construction, search ranking, heuristics, and the React Flow interface.

03

key decision

Use the TypeScript Compiler API instead of text matching so imports, exports, named functions, arrow functions, and classes are extracted from syntax nodes.

visual evidence pending

No repository screenshot is published for this project. A real application capture should replace this clearly marked placeholder.

04 / how it works

System flow

implemented — verified against source5
  1. Scans the current local workspace or a public GitHub repository for JavaScript and TypeScript source files.

  2. Extracts imports, exports, functions, arrow functions, and classes with the TypeScript Compiler API.

  3. Builds folder containment and resolvable local-import edges, then renders them with React Flow.

  4. Ranks repository search matches across filenames, paths, summaries, symbols, and imports.

  5. Generates a six-file onboarding path, external dependency list, and rule-based file-risk hotspots.

What is implemented and what is not

known limitations4
  • Public GitHub scans are unauthenticated and limited to the first 80 supported files.

  • Import resolution handles relative paths and the @/ alias, not every tsconfig path mapping.

  • Risk and onboarding results are explainable heuristics, not semantic complexity analysis.

  • The repository currently has lint and build checks but no automated test suite.

hardest part

Resolving local import specifiers to real files while keeping folder relationships and dependency edges understandable on one graph.

what I learned

Static analysis becomes more useful when its heuristics are transparent and its limitations are visible to the user.