72
/ 100
Solid engineering. The biggest lever is test coverage.
JMAP Webmail built for the 21st Century. A modern, self-hosted email client for Stalwart Mail Server powered by the JMAP protocol. Email, calendar, contacts and files. Fast, private, and open source.
Top fixes
Highest-impact changes first, ranked by point weight
- 1Tests18pt
Set scripts.test in package.json to your actual test command, e.g. "vitest" or "jest".
- 2CI/CD14pt
Add a step like `run: npm test`, `run: pytest`, or `run: tox` to your workflow file.
- 3CI/CD14pt
Add `pull_request:` to the workflow `on:` triggers.
- 4CI/CD14pt
Add a lint step to catch style issues automatically.
Working through the fixes? Let every push regrade itself.
The free GitHub App rescans this repo on every push and posts the grade as a commit check, so the score climbs without coming back to rescan by hand.
Scorecard
Every check, grouped by category and sorted worst-first
Documentation
99
Contributing guide is detailed and thorough.
README is present.
README documents how to install the project.
Licensed under Other.
Engineering
44
No issue or PR templates found (−100 pts).
→ Add .github/ISSUE_TEMPLATE/ with bug_report.md and feature_request.md to guide contributors. It dramatically improves issue quality.
Test files detected (components/contacts/__tests__).
CI is configured (.github/workflows/docker-publish-releases.yml).
Lockfile present (package-lock.json). Installs are reproducible.
Linter or formatter configured (eslint.config.mjs).
Project health
100
Dependency manifest found (package.json).
Repository has a description.
Actively maintained (pushed within the last month).
.gitignore present.
Repository health signals
Activity, community, and responsiveness at scan time
Activity
- 135 / 696Commits (30d / 90d)
- 111Forks
- 36Releaseslatest 4mo ago
Community
- 87% - GoodCommunity health
- 1 bus factorlowauthor own >50% of commits
- 773Watchers
Responsiveness
- 6hMedian issue response
- 2hMedian PR merge time
- 81Open issues
Repository files40 root entries
- .githubGood: CI is configured (.github/workflows/docker-publish-releases.yml).
- .husky
- app
- componentsGood: Test files detected (components/contacts/__tests__).
- contexts
- e2e
- hooks
- i18n
- lib
- locales
- public
- screenshots
- stores
- .dockerignore
- .env.dev.example
- .env.example
- .gitignoreGood: .gitignore present.
- CHANGELOG.md
- CONTRIBUTING.mdGood: Contributing guide is detailed and thorough.Good: Contributing guide includes setup/install instructions.Good: Contributing guide describes code style expectations.Issue: Contributing guide lacks a testing section (−8 pts).Fix: Show contributors how to run the test suite (e.g. npm test, pytest, cargo test).Good: Contributing guide describes the PR/review workflow.Good: Contributing guide includes code examples.
- docker-compose.yml
- DockerfileGood: Environment pinned via Dockerfile.
- eslint.config.mjsGood: Linter or formatter configured (eslint.config.mjs).
- FEATURES.md
- instrumentation.node.ts
- instrumentation.ts
- LICENSEGood: Licensed under Other.
- next.config.ts
- NOTICE
- package-lock.jsonGood: Lockfile present (package-lock.json). Installs are reproducible.
- package.jsonGood: Dependency manifest found (package.json).
- playwright.config.ts
- postcss.config.mjs
- proxy.ts
- README.mdGood: README is present.Good: README is well structured with multiple sections.Good: README includes screenshots or visuals. Great for first impressions.Good: README has code examples.Good: README links to a live demo or deployed app.Good: README includes status badges.Good: README documents how to install the project.Good: README documents how to run the project.
- setup.sh
- tailwind.config.ts
- tsconfig.json
- VERSION
- vitest.config.ts
- vitest.setup.ts
Add this badge to your README
It updates automatically each time the repo is re-graded.
[](https://www.repo-grade.com/report/bulwarkmail/webmail)