Hi everyone, I’ve been building a new tool called *Perf Fiscal*, and I’d love feedback from this community.
*Perf Fiscal is a performance-oriented linter for JavaScript/TypeScript that performs cross-file analysis.*
Instead of looking only at the current file like ESLint plugins normally do, it builds a TypeScript-powered metadata graph across your entire codebase and catches issues that traditional linters simply cannot detect.
### What it detects today:
- Unstable inline props that break memoization boundaries
- Components with volatility patterns that propagate re-renders
- Functions whose identity changes across modules
- Async flows that create invisible performance traps
- Cross-file references that trigger unintended updates
- React props that look stable but aren’t
- Misplaced memoization that silently kills performance
### Why this matters
Modern React apps don’t break because of syntax errors—they break because of *invisible performance leaks*.
These issues are rarely found by tests, and existing linters don’t see them because they only analyze one file at a time.
Perf Fiscal attempts to solve that by building a cross-file dependency graph, correlating TS metadata, and evaluating the stability of values, hooks, and props across boundaries.
### Why I built it
I felt we needed tooling that goes beyond “style linting” and actually understands how the app behaves holistically.
Perf issues are often architectural, not local.
This tool tries to make that actionable.
### What’s unique here
- Cross-file engine (works across modules)
- TypeScript metadata correlation
- Detects volatility patterns before they hit production
- Zero-config (just install + run)
- Designed to work with existing ESLint workflows
- 8 days old and rapidly evolving
ruidosujeira•2h ago
*Perf Fiscal is a performance-oriented linter for JavaScript/TypeScript that performs cross-file analysis.* Instead of looking only at the current file like ESLint plugins normally do, it builds a TypeScript-powered metadata graph across your entire codebase and catches issues that traditional linters simply cannot detect.
### What it detects today: - Unstable inline props that break memoization boundaries - Components with volatility patterns that propagate re-renders - Functions whose identity changes across modules - Async flows that create invisible performance traps - Cross-file references that trigger unintended updates - React props that look stable but aren’t - Misplaced memoization that silently kills performance
### Why this matters Modern React apps don’t break because of syntax errors—they break because of *invisible performance leaks*. These issues are rarely found by tests, and existing linters don’t see them because they only analyze one file at a time.
Perf Fiscal attempts to solve that by building a cross-file dependency graph, correlating TS metadata, and evaluating the stability of values, hooks, and props across boundaries.
### Why I built it I felt we needed tooling that goes beyond “style linting” and actually understands how the app behaves holistically. Perf issues are often architectural, not local. This tool tries to make that actionable.
### What’s unique here - Cross-file engine (works across modules) - TypeScript metadata correlation - Detects volatility patterns before they hit production - Zero-config (just install + run) - Designed to work with existing ESLint workflows - 8 days old and rapidly evolving
### Roadmap - Deeper async graph inspection - Detecting global-store volatility - Optional runtime sampling validation - Standalone CLI mode
### Repo https://github.com/ruidosujeira/perf-fiscal
Would love to hear your thoughts, criticisms, or edge cases I should support. Happy to answer anything. Thanks!