Proposed Change
Explore a hybrid linting and formatting architecture. (Maybe ask Josh what his thoughts are 🙂)
Why?
At our scale (~30-50k LOC), running full typescript-eslint checks with type-aware rules adds noticeable overhead to local hooks and CI pipelines. By splitting these responsibilities, we can get near-instant feedback loops during development.
Proposed Architecture
Next Steps
- Benchmark a basic Biome configuration against a single app in the monorepo.
- Strip out stylistic rules from our current ESLint configuration to prevent rules from fighting each other.
Aside
We currently lint some packages in the mono-repo but this should be standardized with proper configurations to cover all packages.
Proposed Change
Explore a hybrid linting and formatting architecture. (Maybe ask Josh what his thoughts are 🙂)
Why?
At our scale (~30-50k LOC), running full
typescript-eslintchecks with type-aware rules adds noticeable overhead to local hooks and CI pipelines. By splitting these responsibilities, we can get near-instant feedback loops during development.Proposed Architecture
Tier 1: Biome (Local & Pre-commit)
Tier 2: typescript-eslint (CI/CD Pipeline)
typescript-eslintfor these advanced rules as a strict gatekeeper in our pull request pipelines.Next Steps
Aside
We currently lint some packages in the mono-repo but this should be standardized with proper configurations to cover all packages.