joi vs superstruct

joi is downloaded 4.1× more often than superstruct (84,275,570 vs 20,701,143 per month), so it has the larger community and more answered questions online. superstruct ships 94% less gzipped JavaScript (3.4 kB vs 52.4 kB), which matters if bundle size is a priority. joi has been updated more recently, a sign of more active maintenance.

Metricjoisuperstruct
Weekly downloads19,374,3274,952,034
Monthly downloads84,275,57020,701,143
GitHub stars21,1877,143
Minified size170.2 kB10.2 kB
Minified + gzipped52.4 kB3.4 kB
Dependencies70
Open issues196100
Last commit2026-05-272024-10-01
Latest version18.2.12.0.2
LicenseBSD-3-ClauseMIT

When to choose which

joi

Rich, mature validation for Node back-ends.

Choose it when: Server-side Node validation (the Hapi ecosystem) with very rich rules — when you don't need static TS types.

  • + Very rich rule set
  • + Mature & stable
  • - No static type inference
  • - Backend-oriented

superstruct

Lightweight, composable data validation.

Choose it when: Simple, composable validation with a small footprint when you don't need Zod's full feature set.

  • + Small & composable
  • + Type inference
  • - Sync only
  • - Smaller ecosystem

Feature comparison

Featurejoisuperstruct
Static type inference✗ No✓ Yes
Async validation✓ Yes✗ No
Standard Schema✗ No✗ No
API styleChainableComposable functional
Best forNode back-endsLightweight needs

joi

Object schema validation

superstruct

A simple and composable way to validate data in JavaScript (and TypeScript).

Related comparisons

Embed this comparison

A live badge for your README — it updates as the numbers change.

joi vs superstruct downloads
[![joi vs superstruct](https://devcompare.dev/badge/joi-vs-superstruct.svg)](https://devcompare.dev/compare/joi-vs-superstruct)

Data from npm, Bundlephobia and GitHub. Last updated 2026-06-02.