Structure-aware semantic code diff

Compare related code together—even after it moves or gets renamed

AlignDiff pairs supported functions, classes, methods, and other structures before showing detailed line changes. It helps reviewers separate movement from modification instead of reading a refactor as a large deletion followed by a large insertion.

What ordinary line diffs can get wrong

Source-order comparison can turn moved functions into delete-and-insert noise and push related return statements or calls onto misleading rows.

Who it is for

Developers, engineering managers, and consultancies reviewing refactors where code movement, renaming, and local edits are mixed together.

Supported browser languages

The current public beta supports Python, JavaScript .js/.mjs/.cjs files, and TypeScript .ts files. JSX and TSX are not currently supported.

Browser-local privacy

Parsing, pairing, and detailed comparison run locally with Web Workers, Tree-sitter, and Rust/WebAssembly. The comparison flow does not upload or execute pasted source code.

Actual AlignDiff comparator output aligning moved, modified, renamed, and inserted Python structures
Actual comparator output from the public checkout refactor example.