Is @hapi/joi still maintained?
No — @hapi/joi stopped being maintained around March 2020. The same project continues under the name joi.
- Status
- No longer maintained
- Last maintained
- March 2020
- Use instead
joi— on npm- Succession
- Renamed package
- Drop-in
- yes — swap the import
- Confidence
- high
What should I use instead of @hapi/joi?
The same project continues under the name joi. joi is close enough to a drop-in replacement that most projects only change the dependency and the import.
How to migrate from @hapi/joi to joi
Replace the dependency with joi at version 17 or later and change require('@hapi/joi') to require('joi'); joi 17 is the same codebase, so schemas carry over unchanged.
Why @hapi/joi is on this list
Joi spent a period inside the @hapi scope and then moved back to the plain joi name when it became a standalone project again. @hapi/joi stopped at 17.1.1 in March 2020 with the npm notice "Switch to 'npm install joi'", and joi 17.1.1 was published under the unscoped name a few months later. Development continues there.
The succession is settled: primary sources agree and the ecosystem has already moved.
@hapi/joi alternatives
Beyond the primary recommendation, these are credible for @hapi/joi's use case:
zod— view on npmyup— view on npmajv— view on npm
Check your own project for @hapi/joi
npx dead-deps --all --min-state unmaintained
Run that in the directory holding your lockfile. If @hapi/joi is anywhere in your tree — a direct dependency or buried under something else — it appears in the report with this verdict, this successor and the same evidence links, alongside anything else that has stopped moving. Nothing is uploaded; the scan reads your lockfile locally and queries public registry metadata.
Exit code 1 means something was flagged, which makes npx dead-deps --min-state deprecated usable as a CI gate. See how verdicts are produced.
Evidence
Every claim on this page traces to a primary source. Check them:
- npm deprecation notice for @hapi/joi ("Switch to 'npm install joi'")npmjs.com
- joi repository, documenting
npm install joigithub.com
Packages related to @hapi/joi
- hapiRenamed package: @hapi/hapi · unmaintained since February 2019
- babel-eslintRenamed package: @babel/eslint-parser · unmaintained since February 2020
- cucumberRenamed package: @cucumber/cucumber · unmaintained since December 2020
- popper.jsRenamed package: @popperjs/core · unmaintained since January 2020
- rollup-plugin-babelRenamed package: @rollup/plugin-babel · unmaintained since March 2020
See the full index of covered packages, or read the methodology for how a verdict is reached and why a quiet package is not a dead one.