85
/ 100
Well engineered. The main gaps are test coverage and a contributing guide.
Self-hosted JMAP webmail for Stalwart Mail Server. Mail, calendar, contacts, and files in one client.
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".
- 2README12pt
Add CI/build status badges from shields.io or your CI provider to signal project health.
- 3Reproducibility6pt
Add .github/dependabot.yml with at least one package-ecosystem entry, or a renovate.json, so dependencies are updated automatically.
- 4Contributing guide5pt
Add setup instructions, code style notes, and how to run tests.
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
93
Contributing guide is too short for full depth credit (−6 pts). 400+ words earns the full +12 pts.
→ Add setup instructions, code style notes, and how to run tests.
README is present.
README documents how to install the project.
Licensed under Other.
Engineering
74
Test files detected (app/(main)/admin/__tests__).
Lockfile present (package-lock.json). Installs are reproducible.
CI is configured (.github/workflows/tests.yml).
Linter or formatter configured (eslint.config.mjs).
Issue or PR templates present.
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
- 749 / 1443Commits (30d / 90d)
- 244Forks
- 60Releaseslatest 7mo ago
Community
- 87% - GoodCommunity health
- 1 bus factorlowauthor own >50% of commits
- 1,373Watchers
Responsiveness
- 6hMedian issue response
- 2hMedian PR merge time
- 126Open issues
Repository files42 root entries
- .githubGood: CI is configured (.github/workflows/tests.yml).Good: Issue or PR templates present.
- .husky
- appGood: Test files detected (app/(main)/admin/__tests__).
- components
- contexts
- deploy
- hooks
- i18n
- integration
- lib
- locales
- public
- screenshots
- scripts
- stores
- .dockerignore
- .env.dev.example
- .env.example
- .gitattributes
- .gitignoreGood: .gitignore present.
- CHANGELOG.md
- CONTRIBUTING.mdIssue: Contributing guide is too short for full depth credit (−6 pts). 400+ words earns the full +12 pts.Fix: Add setup instructions, code style notes, and how to run tests.Good: Contributing guide includes setup/install instructions.Issue: Contributing guide lacks a code style section (−8 pts).Fix: Describe your linting/formatting rules and how to run them.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.
- Dockerfile.lite
- eslint.config.mjsGood: Linter or formatter configured (eslint.config.mjs).
- 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.integration.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.Issue: No status badges in the README (−10 pts).Fix: Add CI/build status badges from shields.io or your CI provider to signal project health.Good: README documents how to install the project.Good: README documents how to run the project.
- setup.sh
- 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)