See which files slow your team down, and what fixing them is worth.
Debtmap reads your code and its git history, then gives engineering leaders a ranked, ticket-ready backlog: the files dragging on velocity, what they cost in weeks, and which fix pays back first.
Public GitHub URL or .zip upload · Private repos via the GitHub App · No credit card
Slower delivery on scan-pipeline and results-UI work.
Before a new engineer can safely change the scan pipeline.
Re-implemented helpers and docs that drifted from the stack.
github.py is a god modulehigh✓ Verifiedback/services/github.py · back/services/git_metrics.py
34,317 bytes, the largest source file. The module docstring describes a snapshot builder, but the file also defines GitHubSource, resolve_repo, token-override contextvars, tiered sampling (_plan_source_sample, _select_diversity, _rank_candidates), blob fetching with a thread pool, and import-resolution helpers. A TODO in the header says: 'split it into snapshot.py + github_source.py'. back/services/git_metrics.py imports the private _is_source_file from it, and github.py uses a TYPE_CHECKING guard to avoid a circular import. The same helper, _dirname, is defined in both files with identical bodies.
10 commits · 1 author · 10% fixes — last 12 mo
back/routers/app.py
17,485 bytes. Besides endpoints, it holds _analyze, _url_job, _zip_job, _execute_scan (semaphore, a per-scan ThreadPoolExecutor for the deadline, DB status updates), _mark_failed, cache lookup and insert helpers, rate-limit charge/rollback, and temp-directory ownership handling in create_scan_upload. Comments call the in-process timeout a 'stopgap' pending a Redis/arq queue. On timeout the worker thread is abandoned rather than cancelled.
8 commits · 1 author · 12% fixes — last 12 mo
A real report, run on our own code.
We pointed Debtmap at its own repository. Here is what came back, including the parts we would rather not have seen.
File-level, not module-level
Every hotspot names the files driving it, with commits, authors and fix density from git.
Quantified, with honest ranges
Velocity drag and onboarding cost come as ranges with a confidence level, not a single scary number.
Ranked by return on effort
The backlog is ordered by what pays back first, with effort and payback weeks on every item.
Checked against the code
Duplication claims are verified against the real source before they reach you. Checked ones carry ✓ Verified.
- 1Split
services/github.pyalong the seams its own TODO describes~6–12 wk paybackhigh - 2Extract scan lifecycle from the router into a runner service, as the step before a real job queue~8–16 wk paybackhigh
- 3Generate frontend types from the backend schema and add a contract test~6–14 wk paybackmedium
- 4Slim down
main.py~3–8 wk paybackmedium - 5Consolidate webhook signature and OAuth state helpers into one signing module~4–10 wk paybackmedium
From repo URL to ranked backlog in three steps.
- 1
Point it at a repo
Paste a GitHub URL or upload a .zip. Private repos work through the GitHub App.
- 2
It reads code and history
Claude analyzes a sampled snapshot of your source alongside churn, ownership and fix density from git.
- 3
Get a ranked backlog
Hotspots, quantified impact and an ROI-ranked backlog, ready to export to Linear or Jira.
✓ VerifiedDuplication claims are checked against your actual source before they reach the report.
Built for the people who decide what gets fixed.
Most repo-analysis tools write strategy overviews for investors. Debtmap is for the CTO or VP of Engineering deciding what the team works on next.
Code-level depth
Quantified impact
ROI-ranked backlog
Built to justify the work
Findings go where your team already works.
GitHub App
Scan private repos and post a check run on every pull request.
GitHub Action
Comment the debt a pull request adds or removes, right on the PR.
Linear & Jira
Export the ranked backlog as issues, de-duplicated across scans.
MCP server
Let AI coding tools read findings and fix them in your editor.
Answers for the conversations that decide the roadmap.
Justify the refactor
Plan the quarter
Diligence a codebase
Questions engineering leaders ask first.
- Is it really free?
- Yes. Debtmap is free while it is in beta.
- Can it scan private repositories?
- Yes. Install the GitHub App on the repos you choose, or upload a .zip of the code.
- What gets sent for analysis?
- A sampled snapshot of your source files plus statistics from git history, not the whole repository.
- How accurate is it?
- Every finding carries a confidence level and its evidence. Duplication claims are checked against the real code; checked ones show ✓ Verified.
Find out what your technical debt is costing you.
Free during beta. Paste a repo URL to start.
Scan a repo →