---
title: "eslint-plugin-kassaila — ESLint rules for TypeScript + Vue"
description: "Custom ESLint rules and shareable configs for TypeScript and Vue projects. Opinionated defaults, zero-config presets."
url: https://symonov.com/projects/eslint-plugin-kassaila/
---

# eslint-plugin-kassaila

Custom ESLint rules and shareable configs for TypeScript and Vue projects.

**2026** · by **Dmytro Symonov** · shipped · `typescript` `eslint` `vue` `oss`

[github ↗](https://github.com/Kassaila/eslint-plugin-kassaila) [npm ↗](https://www.npmjs.com/package/eslint-plugin-kassaila)

## 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

## links — external resources

- github: [https://github.com/Kassaila/eslint-plugin-kassaila](https://github.com/Kassaila/eslint-plugin-kassaila)
- npm: [https://www.npmjs.com/package/eslint-plugin-kassaila](https://www.npmjs.com/package/eslint-plugin-kassaila)
