superstruct vs valibot
valibot is downloaded 2.2× more often than superstruct (44,809,295 vs 20,701,143 per month), so it has the larger community and more answered questions online. superstruct ships 76% less gzipped JavaScript (3.4 kB vs 14.4 kB), which matters if bundle size is a priority. valibot has been updated more recently, a sign of more active maintenance.
| Metric | superstruct | valibot |
|---|---|---|
| Weekly downloads | 4,952,034 | 10,917,346✓ |
| Monthly downloads | 20,701,143 | 44,809,295✓ |
| GitHub stars | 7,143 | 8,734✓ |
| Minified size | 10.2 kB✓ | 83.5 kB |
| Minified + gzipped | 3.4 kB✓ | 14.4 kB |
| Dependencies | 0 | 0 |
| Open issues | 100✓ | 122 |
| Last commit | 2024-10-01 | 2026-05-31✓ |
| Latest version | 2.0.2 | 1.4.1 |
| License | MIT | MIT |
When to choose which
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
valibot
Zod-like validation that's tiny and tree-shakable.
Choose it when: Bundle-size-critical front-ends that want Zod-style inference at a fraction of the size.
- + Very small & tree-shakable
- + Full type inference
- + Modular
- - Younger ecosystem than Zod
- - Functional API differs from Zod
Feature comparison
| Feature | superstruct | valibot |
|---|---|---|
| Static type inference | ✓ Yes | ✓ Yes |
| Async validation | ✗ No | ✓ Yes |
| Standard Schema | ✗ No | ✓ Yes |
| API style | Composable functional | Functional / modular |
| Best for | Lightweight needs | Frontend bundles |
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.
[](https://devcompare.dev/compare/superstruct-vs-valibot)Data from npm, Bundlephobia and GitHub. Last updated 2026-06-02.