the problem
Every new TypeScript + Vue project starts with the same 30 minutes of ESLint config:
picking plugins, resolving conflicts between @typescript-eslint and eslint-plugin-vue,
deciding on import ordering, and copy-pasting the same overrides from the last project.
Shared configs on npm solve this — but most are either too opinionated (no escape hatch)
or too loose (still need 20 overrides).
the approach
A single ESLint plugin that bundles custom rules and shareable flat configs for TypeScript and Vue projects. Opinionated where it matters (import order, naming conventions, type safety), permissive where it doesn’t (formatting is Prettier’s job). Ships as one package with preset configs you can extend in one line.
stack
- TypeScript
- ESLint flat config API
- Custom rule implementations with AST visitors