WSWhat Scene?

Learn · Developer tools

Should linting run on save or in CI?

Both, doing different jobs. On save it is feedback: you see the problem while you still remember writing it. In CI it is a gate: nothing merges that fails, regardless of anyone's editor setup. On save alone is unenforced, and CI alone is a slow way to find out.

Editor setup is per person and always drifts. Someone joins, does not install the extension, and writes a fortnight of code that only fails once it reaches the pipeline. The CI run is what makes the standard real rather than aspirational.

Keep the two identical. If CI runs a different config from the editor, people learn to distrust their editor, and a linter nobody trusts is one they will start disabling inline. One config, both places, no arguments about which one is right.

Updated August 2026

Want this built, not just explained?