Front-End JavaScript Reference
The State of JS Libraries
in 2025
80+ libraries researched across 5 categories. All data is approximately mid-2025. Verify live stats at npmjs.com before making decisions.
By the Numbers
⬇️
~200M
Combined Weekly npm Downloads
⭐
~1.4M
Combined GitHub Stars
Category Highlights
React 19 Compiler, Svelte 5 Runes, Vue 3.5 lazy hydration, Next.js 15 Turbopack stable, React Router v7 = Remix merger.
React ~27M/wk
Next.js ~8.5M/wk
shadcn/ui copy-paste model dominates. Radix UI drives 20M+ downloads invisibly. Zero-runtime CSS replacing Emotion/styled-components.
MUI ~5M/wk
DaisyUI ~1.8M/wk
🎨 CSS & Animation
16 libs
Tailwind v4 Oxide engine rewrites the game. GSAP went fully free. Framer Motion rebranded to motion. Anime.js v4 full ESM rewrite.
Tailwind ~11M/wk
Motion ~4.5M/wk
Zustand v5 overtakes Redux in new projects. TanStack Query v5 major API changes. Recoil effectively dead — migrate to Jotai. tRPC surging.
RTK ~10M/wk
Zustand ~5.5M/wk
Every new build tool is written in Rust/Go. Vite v6 Environment API. Rolldown is Vite's future bundler. Zod at 30M/wk. Biome replaces ESLint+Prettier.
esbuild ~78M/wk
Zod ~30M/wk
Avoid for new projects: Recoil (use Jotai), Stitches (use Panda CSS), Moment.js (use date-fns / Luxon / Temporal).
Recoil: stalled
Stitches: unmaintained
10 Defining Trends
01
Compilers Over Runtimes
React Compiler, Svelte 5 Runes, Vue Vapor, Million.js — compile-time optimization eliminates manual useMemo/useCallback. The framework does the work, not the developer.
02
Signals Everywhere
Angular Signals, Solid Signals, Svelte Runes, Vue Reactivity — fine-grained reactive primitives now dominate every major framework as an alternative to VDOM diffing.
03
Zero-Runtime CSS Wins
Runtime CSS-in-JS (Emotion, styled-components) is incompatible with React Server Components. Tailwind v4, vanilla-extract, Panda CSS, StyleX all generate static CSS at build time.
04
The Rust Toolchain is Complete
Turbopack, Rolldown, Rspack, Parcel core, Biome, Oxc — the entire build pipeline has been rewritten in Rust/Go. JS tools persist through ecosystem lock-in only.
05
Vite is the Platform
Vite v6 Environment API makes it the connective tissue that frameworks build on — not just a dev server. Rolldown will give it a fully Rust-native pipeline end-to-end.
06
Server/Client Blur
RSC, Server Actions, Astro Actions, TanStack Server Functions, Qwik resumability — the server/client boundary is managed by frameworks, not manually by developers.
07
The shadcn/ui Effect
Copy-paste over npm install went mainstream. AI coding tools (Cursor, v0.dev, Copilot) accelerate this — they generate components that the team owns and can modify freely.
08
Temporal API is Inevitable
Every date library author points to it as the successor to Date. Native V8/SpiderMonkey implementations were in active progress. Polyfill is production-ready today.
09
GSAP Went Free
The biggest animation story of 2024 — ScrollTrigger, SplitText, MorphSVG all became free for commercial use. GSAP 4.0 in beta. npm downloads surged significantly.
10
TypeScript Type Safety as Moat
TanStack Router/Form, tRPC, Conform — the new generation competes on how deeply types flow from database to UI without codegen. Zod at 30M downloads/week tells the story.
UI / Component Frameworks
Meta's UI library. v19 brings the React Compiler (auto-memoization), Actions for async mutations, and Server Actions stable.
★ 230K
~27M/wk
Active
v3.5 "Tengen Toppa" adds reactive props destructure, lazy hydration strategies, useTemplateRef(), 56% memory reduction.
★ 47K
~4.5M/wk
Active
Complete Runes rewrite. $state(), $derived(), $effect(), $props() replace implicit reactivity. Runes work in .svelte.ts files.
★ 80K
~1.3M/wk
Active
Signals stable, signal-based component APIs (input(), output()), new @if/@for control flow, deferrable views (@defer), Vite-powered dev server.
★ 96K
~3.8M/wk
Active
JSX with fine-grained DOM reactivity — no virtual DOM, components run once. Near-perfect benchmark scores. SolidStart 1.0 meta-framework stable.
★ 32K
~250K/wk
Active
Builds on native Web Components. ~5KB, framework-agnostic. v3 targets modern browsers, adds @lit/context, @lit/task, TC39 standard decorators.
★ 18K
~1.7M/wk
Active
Extends HTML with hx-get, hx-post, hx-swap. Server sends HTML fragments. Zero build step. Perfect for Django, Rails, Laravel backends.
★ 40K
~450K/wk
Active
Declarative reactivity via HTML attributes. ~15KB, no build step. x-data, x-bind, x-on, x-teleport. Natural Laravel/Livewire pairing.
★ 28K
~375K/wk
Active
Resumability instead of hydration. Serializes app state into HTML, resumes on interaction. Near-instant TTI regardless of app size. QwikCity for routing/SSR.
★ 21K
~125K/wk
Active
React 19 — Key Changes
🤖 React Compiler
- Auto-memoizes components and values at build time
useMemo, useCallback, memo() largely no longer needed
- Babel/Vite plugin rewrites your code at compile time
- Opt-in per file or globally
⚡ Actions API
useActionState — manage async mutation state
useFormStatus — pending/error/data from parent form
useOptimistic — optimistic UI without libraries
- Server Actions stable — call server functions from client components
🪝 New Hooks & APIs
use(promise) — read a Promise inside render with Suspense
ref as a plain prop — no more forwardRef wrapper
- Native
<title>, <meta>, <link> hoisting — no react-helmet
preload(), preinit() resource hint APIs
🌊 Svelte 5 Runes
$state() — explicit reactive state
$derived() — computed values
$effect() — side effects
$props() / $bindable() — replaces export let
- Runes work in
.svelte.js — reactive logic outside components
{#snippet} / {@render} replaces slots
Meta-Frameworks
| Framework | Version | Stars | Downloads/wk | Stack | Best For |
| Next.js | 15.x | ~127K | ~8.5M | React | RSC, SSR/SSG, e-commerce, Vercel |
| React Router v7 | 7.1.x | ~53K | ~15M | React | Remix merger — library + framework modes |
| Nuxt 3 | 3.12.x | ~55K | ~1.7M | Vue | Vue SSR/SSG, full-stack Vue |
| Astro | 5.x | ~46K | ~900K | Any | Content sites, islands architecture |
| SvelteKit | 2.x | ~19K | ~650K | Svelte | Full-stack Svelte, flexible deploy |
| TanStack Start | 1.x | ~6K | ~100K | React | 100% type-safe full-stack React |
| Qwik (QwikCity) | 1.9.x | ~21K | ~125K | Qwik | Resumability, instant TTI, e-commerce |
Meta-Framework Highlights
⚡ Next.js 15
- Turbopack dev stable — ~40–60% faster than Webpack
fetch() uncached by default (reversed v14 behavior)
after() — run code after response sent
connection() — explicit dynamic rendering opt-in
- Full React 19 support
🌌 Astro 5
- Content Layer API — loader-based, replaces Content Collections
- Server Islands — static pages with server-rendered slots
- Astro DB — first-party LibSQL/Turso database
- Astro Actions — type-safe server functions with Zod
astro:env — typed environment variables
🔀 React Router v7
- Remix v2 merged directly into React Router
- Library mode (SPA) + Framework mode (SSR) in one package
- Auto-generated TypeScript types for route data
- SPA mode — client-only with file-based routing
- Pre-rendering (SSG) via
prerender config
Emerging Frameworks
Minimal RSC framework by the creator of Jotai/Zustand. Vite-based, learning-focused RSC primitive exposure.
★ 5KReact RSC
Angular's answer to Next.js — file-based routing, SSR/SSG, Vite-based, MDX support. Fills Angular's meta-framework gap.
★ 3KAngular
Block-based VDOM drop-in for React. Compiler plugin rewrites components for 70% faster renders in benchmarks.
★ 16KReact Optimizer
Ultra-fast edge-first web framework. HonoX adds file-based routing + JSX SSR. Cloudflare Workers / Bun native.
★ 20KEdge
ℹ️
The shadcn/ui EffectCopy-paste over npm install went mainstream. Libraries now compete on code quality and composability — developers own the code and modify it freely. AI tools like v0.dev and Cursor accelerate this model.
React — Styled Libraries
Copy-paste components built on Radix UI + Tailwind. You own the code. Registry system for community components.
★ 75K
Copy-paste (no npm)
Active
Google Material Design 3. v6 introduced Pigment CSS (zero-runtime) to replace Emotion. MUI X for advanced data grid, charts.
★ 93K
~5M/wk
Active
Enterprise-grade 80+ components. Design tokens with CSS variables. Strong in data-heavy admin UIs. Dominant in Asian enterprise market.
★ 92K
~1.8M/wk
Active
100+ components + 50+ hooks. Dropped Emotion in v7 for CSS modules. Built-in form handling, notifications. Excellent DX.
★ 27K
~700K/wk
Active
Rebuilt on Ark UI (state machine headless layer) + Panda CSS. Snippet system like shadcn/ui. v3 was a near-complete rewrite.
★ 38K
~800K/wk
Active
90+ components including complex DataTable, TreeTable. Multiple themes + Theme Designer. PrimeTek ecosystem (Vue, Angular versions available).
★ 6.5K
~400K/wk
Active
Rebranded from NextUI (early 2025). Tailwind + React Aria for accessibility. Framer Motion animations built-in. Polished aesthetic for SaaS.
★ 22K
~350K/wk
Active
React — Headless / Primitives
The invisible backbone of shadcn/ui and dozens of other libraries. WAI-ARIA compliant. 20M+ combined downloads/week — understated influence.
★ 15K
~20M+/wk total
Active
By the Tailwind Labs team. Unstyled accessible components — Dialog, Combobox, Listbox, Menu, Popover, Tabs. Natural Tailwind CSS pairing.
★ 26K
~2M/wk
Active
Gold standard for accessibility. Built-in i18n for 100+ locales, virtualization, WCAG 2.2 compliant. Powers Adobe's own products.
★ 12.5K
~2.5M/wk
Active
Headless, framework-agnostic table. Sorting, filtering, grouping, pagination, virtualization. React, Vue, Solid, Svelte, Angular adapters.
★ 26K
~4.5M/wk
Active
State machine-based headless components (Zag.js). Powers Chakra UI v3. React, Vue, Solid adapters. 45+ components including Calendar, Color Picker.
★ 4K
~250K/wk
Active
Vue Component Libraries
| Library | Version | Stars | Weekly DLs | Notes |
| Vuetify | v3.x | ~40K | ~800K | Material Design, most complete Vue UI lib |
| PrimeVue | v4.x | ~10K | ~550K | Unstyled mode = competitive headless option |
| Element Plus | v2.x | ~24K | ~550K | Dominant in Chinese enterprise Vue apps |
| Quasar | v2.x | ~26K | ~300K | Cross-platform: web + mobile + Electron |
Framework-Agnostic & CSS Kits
Tailwind plugin adding semantic component classes. 50+ components, 30+ built-in themes. Zero JS — pure CSS. Works with any framework.
★ 35K
~1.8M/wk
Active
Tailwind components with React/Vue/Svelte/Angular variants. Figma design kit. Flowbite Blocks: 400+ page sections. Pro tier available.
★ 8K
~350K/wk
Active
🔥 Trending — Animation-Heavy Components
✨ Aceternity UI
- Framer Motion + Tailwind + shadcn — copy-paste
- Viral on social — hero sections, cards, backgrounds
- Best for: marketing landing pages
- Not utility — pure "wow factor" components
🪄 Magic UI
- Animation-heavy shadcn registry extension
- Animated counters, marquees, gradients, particles
- Built on Framer Motion + Tailwind
- Best for: SaaS product landing pages
📋 Origin UI
- shadcn/ui extension focused on form components
- Fills gaps in shadcn's form coverage
- Radix UI + Tailwind CSS
- Fast growing: 5K+ stars by mid-2025
⚠️
Runtime CSS-in-JS is in declineEmotion and styled-components are incompatible with React Server Components (RSC) — they require context and runtime injection. Both are in maintenance mode. For new projects, use Tailwind v4, vanilla-extract, or Panda CSS.
Styling Libraries
Complete rewrite using Oxide (Rust) engine. CSS-first config via @theme block. Zero config files. Lightning CSS bundled. Vite plugin first-class.
★ 84K
~11M/wk
Active
Zero-runtime CSS-in-TypeScript. Write styles in .css.ts files — extracted at build time. Full type safety, scoped class names. Sprinkles for atomic utilities.
★ 10K
~1.3M/wk
Active
Atomic CSS engine with preset system. Attributify mode, pure CSS icons. Tailwind v4 compat preset added in 2025. Popular in Vue/Nuxt ecosystem.
★ 16K
~700K/wk
Active
Build-time CSS with design tokens. Type-safe css(), cva(), styled() APIs compile to zero-runtime atomic CSS. Works with any framework.
★ 4.5K
~175K/wk
Active
Meta's zero-runtime atomic CSS-in-JS. Compile-time extraction. Deterministic style merging (later styles always win). Powers facebook.com & instagram.com.
★ 8.5K
~70K/wk
Active
Runtime CSS-in-JS. High download count is driven by MUI dependency, not organic new adoption. RSC incompatible. In maintenance mode.
★ 17.5K
~11M/wk
Maintenance
Template literal CSS-in-JS. High downloads from legacy codebases. RSC incompatible due to runtime context injection. No major v7 planned.
★ 40K
~9M/wk
Maintenance
Last release was 2022. WorkOS team has stated it is not being maintained. Migrate to Panda CSS or vanilla-extract for new projects.
★ 7.8K
~230K/wk
⚠️ Unmaintained
Tailwind v4 — What Changed
🦀 Oxide Engine (Rust)
- Complete rewrite using Rust — dramatically faster builds
- Automatic content detection — no
content array in config
- Lightning CSS bundled for transforms and vendor prefixes
@import inlining built in, no separate PostCSS config
🎨 CSS-First Configuration
- Design tokens live in
@theme { } block in CSS
tailwind.config.js no longer needed for most cases
- All tokens exposed as CSS custom properties by default
@tailwindcss/vite plugin ships as first-class integration
Animation Libraries
Rebranded from framer-motion to motion. Sub-paths: motion/react, motion/vue, motion/mini. Layout animations, scroll-linked, gestures.
★ 23K
~4.5M/wk
Active
Industry-standard animation engine. All plugins (ScrollTrigger, SplitText, MorphSVG, Flip) went FREE in 2024. GSAP 4.0 in beta with modernized API.
★ 20K
~1.7M/wk
🆓 Now Free
Full ESM rewrite. New: scroll animations, Draggable, Timer/Ticker. Scopes for managing animations. v3 → v4 has breaking changes but is far more capable.
★ 50K
~600K/wk
Active
Renders After Effects animations. dotLottie (new binary format) is ~10x smaller than JSON. WASM-powered renderer in @lottiefiles/dotlottie-web.
★ 30K
~2.8M/wk
Active
Physics-based spring animations. useSpring, useSprings, useTrail, useTransition. React Native + React Three Fiber support.
★ 28K
~700K/wk
Active
One-line add/remove/move animations. Attach a single ref to a parent — children animate automatically. ~2KB. React, Vue, Solid, Vanilla.
★ 13K
~175K/wk
Active
Visual keyframe editor (@theatre/studio) for complex orchestrated animations. Integrates with Three.js/R3F. Best for creative/3D web experiences.
★ 11K
~20K/wk
Active
Animation Comparison
| Library | Version | Stars | Weekly DLs | Best For | Framework |
| Motion (Framer) | 11.x | ~23K | ~4.5M | React UI animations, layout, gestures | React / Vue |
| GSAP 3 | 3.12.x | ~20K | ~1.7M | Complex timelines, scroll effects (free!) | Any |
| Anime.js | 4.0.x | ~50K | ~600K | DOM/SVG/CSS animation, v4 scroll+drag | Any |
| Lottie | 5.12.x | ~30K | ~2.8M | After Effects renders, dotLottie format | Any |
| React Spring | 9.7.x | ~28K | ~700K | Physics springs, React Native, R3F | React |
| AutoAnimate | 0.8.x | ~13K | ~175K | Zero-config list/presence animations | Any |
| Theatre.js | 0.7.x | ~11K | ~20K | Visual keyframe editor, 3D/WebGL | Any |
🚫
Recoil is effectively deadMeta has stopped active development. No v1.0 was ever released. Roadmap is stalled. Migrate to Jotai — it has the same atomic mental model but is actively maintained with a smaller footprint.
State Management
Most-downloaded by volume (enterprise/legacy). createSlice, RTK Query, combineSlices for code-splitting, listener middleware. Immer v10 internally.
★ 10.5K
~10M/wk
Active
Best DX for new React projects. No provider needed. v5: requires React 18+, cleaner ESM/CJS, useShallow moved to separate import, improved slice pattern.
★ 47K
~5.5M/wk
Active
Official Vue state manager (replaced Vuex). Options + Composition API stores. Pinia 3 (preview) targets Vue Vapor — no virtual DOM, granular reactivity.
★ 13K
~3M/wk
Active
Atomic model — the active Recoil successor. ~3KB core. useAtomValue / useSetAtom for fine-grained re-renders. Rich utils ecosystem. Concurrent-safe.
★ 19K
~1.7M/wk
Active
Observable-based reactive state. makeAutoObservable is idiomatic in v6. Proxy-based, no decorators required. mobx-react-lite for React. Great for domain models.
★ 27K
~1.7M/wk
Active
State machines + actor model. v5 is a major rewrite — actor-centric, setup() API, dramatically better TypeScript. Stately Studio visual editor.
★ 27K
~1.7M/wk
Active
Proxy-based mutable state — Immer-like ergonomics without Immer. useSnapshot for React. ~3KB. v2 requires React 18+, improved Map/Set/Date handling.
★ 9K
~800K/wk
Active
Observable + fine-grained reactivity. v3 rebuilt sync/persistence API (synced, syncedCrud). Supabase, Firebase, REST integrations. Best offline-first option.
★ 4K
~200K/wk
Active
Framework-agnostic, ~265 bytes/store. atom, map, computed. Astro's official recommendation for cross-framework shared state in island architectures.
★ 4.5K
~325K/wk
Active
Meta's atomic state library — development has stopped. No v1.0 released. Community has migrated to Jotai. Do not start new projects with Recoil.
★ 19K
~500K/wk
⚠️ Dead
Data Fetching & Async
The standard for async server state. React, Vue, Solid, Svelte, Angular. v5 breaking: callbacks removed from useQuery, 'pending' replaces 'loading', useSuspenseQuery dedicated hook.
★ 43K
~7M/wk
Active
Vercel's data fetching. Stale-While-Revalidate. v2 adds useSWRMutation, useSWRSubscription, preload API, optimistic UI built-in. ~4KB.
★ 30K
~3.5M/wk
Active
End-to-end type safety between server and client — no codegen. v11: RSC server-side caller, @trpc/tanstack-react-query package. Default for Next.js + Prisma stacks.
★ 36K
~1.2M/wk
Active
Apollo Client
3.12 / v4-preview
Full-featured GraphQL client. v4 preview: ESM-only, React 19 native, smaller bundle, createQueryPreloader for RSC. watchFragment + useFragment stable.
★ 19K
~3.5M/wk
Active
Lightweight, extensible GraphQL client. Exchange-based middleware. React, Vue, Svelte. v4: ESM-first, useSyncExternalStore, normalized cache via @urql/exchange-graphcache.
★ 8.5K
~500K/wk
Active
Meta's compiler-based GraphQL client. Powers facebook.com. Rust compiler dramatically faster. Colocated fragments, normalized cache. RSC + streaming support.
★ 18.5K
~275K/wk
Active
TanStack Query v5 — Breaking Changes
🚨 Removed from useQuery
onSuccess, onError, onSettled callbacks removed
- Use
useEffect or mutation callbacks instead
status: 'loading' renamed to status: 'pending'
keepPreviousData replaced with placeholderData={(prev) => prev}
✅ New in v5
useSuspenseQuery dedicated hook (replaces suspense option)
- Simplified optimistic updates via
variables on mutation
queryOptions() / mutationOptions() for reusable typed configs
- Infinite queries require
initialPageParam and getNextPageParam
🦀
The Rust Toolchain is CompleteTurbopack, Rolldown, Rspack, Parcel core, Biome, Oxc — every significant new build tool is written in Rust or Go. JavaScript tools persist through ecosystem lock-in only. The performance gap is 10–100x.
Build Tools & Bundlers
The ecosystem hub. v6 Environment API enables SSR, edge, multi-runtime builds. ESM dev server, Rollup production builds, esbuild pre-bundling. Framework default everywhere.
★ 70K
~21M/wk
Active
Raw speed benchmark reference. 10–100x faster than Webpack. Used inside Vite for dep pre-bundling. Deliberately limited scope — no HMR, focused on pure build speed.
★ 38K
~78M/wk
Active
Still the most-downloaded bundler — legacy entrenchment. Module Federation (micro-frontends). Persistent filesystem cache. Broadest plugin/loader ecosystem.
★ 65K
~27M/wk
Maintenance
All-in-one: runtime + bundler + package manager + test runner. Native TypeScript/JSX. Binary lockfile. 2–4x faster than Node. Cloudflare Workers support.
★ 75K
~2.5M/wk
Active
Webpack drop-in replacement in Rust. Battle-tested at ByteDance scale. Module Federation 2.0. Rsbuild is the higher-level tool on top. 5–10x faster than Webpack.
★ 10.5K
~1.7M/wk
Active
Future production bundler inside Vite. Rollup-compatible API. Built on Oxc (Rust parser). 10–20x faster than Rollup. Pre-1.0 but being dogfooded in Vite nightly.
★ 10.5K
~75K/wk
Pre-1.0
Zero-config — point at an HTML file and it works. Parcel Macros for compile-time code execution. Content-hashed persistent cache. Best zero-config bundler.
★ 43K
~1.7M/wk
Active
ESLint + Prettier replacement in one Rust binary. 200+ lint rules. Prettier-compatible formatter. 25–35x faster. JS/TS/JSX/CSS/JSON. Zero dependencies.
★ 16.5K
~3.5M/wk
Active
Rust incremental engine — recomputes only what changed. next dev --turbopack is stable. Up to 10x faster cold starts than Webpack. Next.js-only (not standalone).
★ 26K
Via Next.js
Active
Utility Libraries
Modern Lodash replacement by Toss. es-toolkit/compat for drop-in Lodash migration. 97% smaller bundles per function. Precise TypeScript types. 2–3x faster than Lodash.
★ 7.5K
~2.5M/wk
Active
TypeScript-first Lodash alternative. Key differentiator: async utilities — retry(3, fn), parallel(10, items, fn), series([fn1, fn2]). Readable, auditable source.
★ 4.7K
~600K/wk
Active
Modular, tree-shakeable date utilities — 200+ pure functions. v3 is ESM-only. 80+ locales. date-fns-tz for timezone support. Most-downloaded date lib.
★ 35K
~19M/wk
Active
Wraps native Intl — no locale data to bundle. Immutable DateTimes. Unique Interval type. In maintenance mode — Temporal API is its successor.
★ 15K
~9M/wk
Maintenance
Native JS — replaces Date entirely. Immutable, timezone-safe. ZonedDateTime, PlainDate, Duration. Polyfill: @js-temporal/polyfill. V8 implementation in progress.
★ 3.5K
~175K/wk (polyfill)
Stage 3
The ecosystem standard. Schema-as-source-of-truth. z.infer<typeof schema> gives TypeScript types from runtime schemas. Everywhere: tRPC, RHF, Drizzle, Next.js. v4 in beta: 100x faster.
★ 34K
~30M/wk
Active
Tree-shakeable — ~600 bytes per schema vs ~12KB for Zod. Functional pipe() API. Critical for edge functions where bundle size matters. Growing fast.
★ 6.5K
~2.5M/wk
Active
Schemas in TypeScript syntax strings with IDE IntelliSense. JIT-compiled validators. Significantly faster than Zod v3 on benchmarks. Unique but polarizing.
★ 5.5K
~600K/wk
Active
Routing & Forms
| Library | Version | Stars | Weekly DLs | Key Differentiator |
| React Router v7 | 7.1.x | ~53K | ~15M | Remix merger — library + SSR framework modes |
| TanStack Router | 1.x | ~8.5K | ~1.7M | 100% type-safe — params, search params, loaders all inferred |
| React Hook Form | 7.53.x | ~41K | ~11M | Uncontrolled inputs, minimal re-renders, resolver ecosystem |
| TanStack Form | 0.x | ~4.2K | ~300K | Framework-agnostic, field-level type safety |
| Conform | 1.x | ~4.2K | ~400K | Progressive enhancement — works without JS, Remix/RR7 native |
Validation Comparison
🏆 Zod v3
- 30M weekly downloads — ecosystem standard
z.infer<typeof schema> — TS types from runtime
- Integrations everywhere: tRPC, RHF, Drizzle, Astro
- v4 in beta: 100x faster parsing, 50% smaller bundle
⚡ Valibot
- ~600 bytes per schema (vs ~12KB for Zod)
- Tree-shakeable — only import what you use
- Functional
pipe(string(), email(), maxLength(50))
- Best for edge functions and bundle-sensitive environments
🎯 ArkType
- TypeScript syntax in strings:
type({ age: "number > 0" })
- IDE IntelliSense inside schema strings — unique
- JIT-compiled: fastest raw validation of the three
- Tradeoff: stringly-typed API is polarizing