Lint HTML email for client compatibility
Deterministic static analysis for HTML email. Catch unsupported CSS and blocked elements before you send - offline, in CI, and right here in your browser. Your HTML never leaves your machine.
Why EmailLint
Try it in your browser
How it works
1. Paste
Drop your email HTML into the editor, or load a sample.
2. Analyze
EmailLint scores it 0–100 and lists every compatibility issue with line numbers.
3. Fix
Each issue tells you why it breaks and how to fix it, plus per-client support.
Score starts at 100: each error subtracts 15, each warning 5, info 0. A single rule is capped at −15 so one prolific issue can't floor the score alone. Minimum 0.
Rules - 39
EmailLint checks email compatibility, not HTML correctness. Click any rule for the rationale and a per-client support matrix.
Invalid - 6
Compatibility - 23
Accessibility - 5
Performance - 2
Quality - 3
Install & use
Pre-stable 0.9.0 - not yet on npm. Clone, build, and lint from the CLI. Exit code is 1 if any error-severity issue is found, so it gates CI.
git clone https://github.com/alurulabs/emaillint
cd emaillint
npm install
npm run build # tsc -> packages/core/dist
# lint in CI:
node packages/cli/dist/index.js emails/**/*.html