Public beta 0.1.0

If you change a function, know what it actually touches.

CodeTracr builds a semantic graph from source — not from runtime guesses — then lets you query lineage, blast radius, and traces in the browser.

From change to real impact

If I change this…

  1. POST /api/v1/orders
    HANDLES
  2. OrderController.create
    CALLS
  3. OrderService.createyou
    CALLS
  4. OrderRepository.save
    WRITES
  5. orders

Blast radius

See what's affected before you merge.

Lineage

Trace dependencies across services, DBs and events.

Flow & sequence

Understand how the system actually executes.

Source-backed

Every link comes with source evidence.

Code changes have ripple effects.

Edit OrderService.create and the blast is rarely just that file. It can reach the HTTP handler that calls it, the table it writes, the event it publishes, and the consumers waiting on the other side.

OrderService.ts

export class OrderService {
  async create(input) {
    const order =
      await this.repo.save(input);
    await this.bus.publish(
      "OrderCreated",
      order
    );
    return order;
  }
}

Ripple from create()

OrderService.create
  • POST /api/v1/ordersHTTP
  • orderstable
  • OrderCreatedevent
  • InventoryServiceconsumer
  • BillingServiceconsumer

How it works

Source in. Graph out. Query in the browser.

1

Parse & analyze

Tree-sitter walks the source tree and extracts facts — no runtime required.

2

Build semantic graph

Symbols, calls, and framework rules become a CodeTracr-owned graph.

3

Query impact

Explore lineage, flow, sequence, and blast radius in the browser.

4

Change with confidence

If a relationship cannot be proved, it stays unresolved — never guessed.

A more understandable codebase is a more reliable system.

  • MIT licensed
  • Community driven
  • Fail-closed by design

Contact

Built in the open. Happy to talk.