Cease Nonsense is an ESLint plugin for TypeScript, React, and roblox-ts projects. It ships 59 rules that go
after the kinds of bugs and anti-patterns that slip past standard linting — things like implicit children on
React.FC, memoization that does nothing, hooks called conditionally, and naming that drifts across a codebase.
The plugin splits its rules into two tiers depending on what they need to analyze:
AST-only rules run purely against the syntax tree. They’re fast, cheap, and work on every keystroke. Most naming
checks and structural patterns live here.
Type-aware rules tap into TypeScript’s type checker for deeper analysis — things like verifying that a memoized
dependency is actually stable, or that a Roblox Instance constructor argument is valid. These are more expensive but
catch problems that syntax alone can’t see.
All 59 rules ship in a single recommended config. You can also pull in category-specific rulesets if you
only need a subset.
TypeScript teams who want stricter guardrails than stock ESLint provides, without stitching together a dozen
separate plugins.
React developers dealing with hook complexity, component bloat, or inconsistent patterns across a growing
codebase.
roblox-ts developers building on Roblox, where Instance handling, Luau interop, and performance constraints
introduce a whole category of bugs that generic linters ignore.
Solo developers who want a second pair of eyes that actually understands the framework they’re working in.