fallow-rs

fallow: Analyze TypeScript and JavaScript Codebases

fallow builds a repository graph to find code health issues, complexity hotspots, duplication, architecture violations, styling drift, and unused code. Use it from the CLI, CI, editors, or coding agents, with findings scoped to changed files.

Stars
5k
Forks
170
Last commit
today
Contributors
39
Releases, 12 months
100+

Our take

Activeregular commits and releases
  • Merges more pull requests than 100% of the projects we track
  • Releases more often than 93% of the projects we track

fallow is an actively maintained, broad codebase-analysis toolkit, though its recent activity is heavily concentrated in one contributor.

Good fit if

  • You maintain JavaScript or TypeScript projects and want health, architecture, duplication, and dead-code checks from one graph.
  • You want CI to focus on issues introduced by a pull request rather than requiring an immediate cleanup of existing findings.
  • You can use the documented Node.js and Rust versions, and prefer an MIT-licensed tool with local analysis.

Look elsewhere if

  • You need a general-purpose analyzer for languages other than JavaScript and TypeScript.
  • Your environment cannot meet the documented Node.js or Rust requirements.
  • You need a project whose maintenance is not strongly dependent on one contributor.
All health signals
Last commit2026-10-07 (today)
Commits, last 90 days100+
Releases, last 12 months100+ (latest v3.32.0, 2026-10-07)
Contributors39 (top contributor: 86% of commits)
Issues closed, last 90 days8+ (typically closed in 1 day)
Pull requests merged, last 90 days100+ (typically merged in 0 days)
Project age7 months

Checked on 2026-10-07 with the GitHub API.

Overview

fallow is a static-analysis tool for TypeScript and JavaScript repositories. It builds a graph of modules, exports, dependencies, functions, and styling tokens, then uses that graph to surface maintainability and architecture problems without requiring the TypeScript compiler.

It is designed for teams that want one analysis engine across local development and CI. Its pull-request audit can focus on findings introduced by a change, helping teams gate new issues without first cleaning up the entire existing backlog.

Key Features

  • Reports code health, complexity hotspots, and refactoring targets.
  • Detects circular dependencies, boundary violations, and architecture drift.
  • Finds duplicated code in JavaScript, TypeScript, CSS, and supported component formats.
  • Identifies unused files, exports, types, members, and dependencies, with fix previews and auto-fixes.
  • Audits changed files in pull requests and can exclude inherited findings from the gate.
  • Analyzes CSS and CSS-in-JS for styling and design-system drift.
  • Provides a CLI, GitHub Action, LSP, VS Code extension, Node API, and MCP server.
  • Offers optional type-aware analysis, runtime-coverage integration, security checks, and similar-code analysis.

Use Cases

  • A frontend team can gate pull requests on new complexity, duplication, unused code, and styling findings without failing on the existing backlog.
  • Maintainers of a TypeScript monorepo can inspect dependency cycles and boundary violations before restructuring packages.
  • A team preparing to remove code can trace whether exports and dependencies are unused, then review proposed fixes before applying them.
  • Engineers improving a mature UI can use health reports and styling analysis to locate difficult-to-change areas and inconsistent tokens.
  • Developers who want feedback in their editor or coding-agent workflow can use the LSP, VS Code extension, or MCP integration alongside the CLI.

What you need

Detected in the repository

  • Node.js >=22.12.0 (from package.json)
  • Rust 1.96 or newer (from Cargo.toml)
  • A Dockerfile, so it can run in a container
  • A test suite and automated checks on GitHub Actions

License in plain words

MITpermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Run fallow from the root of a JavaScript or TypeScript project:

npx fallow

For installation options, configuration, and CI setup, see the README and documentation.

Alternatives

  • tach: Tach focuses on enforcing declared Python module boundaries, while fallow analyzes repository health, complexity, duplication, and unused code across JavaScript and TypeScript.
ProjectLanguageLicenseStarsStatus
fallowRustMIT5kActive
tachRustMIT2.8kActive

Considerations

The project is young, despite frequent recent commits and releases. Its measured activity is strong, with issues and pull requests handled quickly, but most contributions come from one person, which is a maintenance concentration risk. The documented runtime requirements are Node.js 22.12.0 or later and Rust 1.96. The analyzer is static, so type-aware analysis and production runtime coverage are optional additions rather than requirements for the basic run.

Found this useful?

Share it with someone who would like fallow.

Comparisons

OS
OSRepos

Analysis and discovery of open source repositories. Find interesting projects and follow their updates.

Monitor your website with YourWebsiteScore

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of third-party repository code is at your own risk. Always review source code, dependencies, licenses, and security implications before running anything.

© 2025 OSRepos. Built with Nuxt 3 and lots of ❤️