Skip to content

SDK Bundle Size

How many KB does each SDK add to your client bundle? Minified, gzipped, tree-shaking support.

122
SDKs measured
93
Tree-shakeable
14
Zero bundle
#1Umami
@umami/tracker
1.2KB
gzipped
2.8KB min✓ Tree-shakeableESMTypeScript

Ultra-light tracker. Almost zero bundle impact.

#2Plausible
plausible-tracker
1.4KB
gzipped
3.2KB min✓ Tree-shakeableESMTypeScript

Incredibly lightweight. The script tag approach is even lighter at <1KB.

#3Wouter
wouter
1.7KB
gzipped
4KB min✓ Tree-shakeableESMTypeScript

Tiny React Router alternative. ~2KB gzipped. Hooks-based API. Perfect for small SPAs that don't need nested routes or data loaders.

#4Vercel
@vercel/analytics
2KB
gzipped
5KB min✓ Tree-shakeableESMTypeScript

Tiny analytics snippet. @vercel/speed-insights adds another ~2KB.

#5Loops
loops
2KB
gzipped
6KB min✓ Tree-shakeableESMTypeScript

Email API client. Ultra-light — just fetch wrappers for sending transactional and marketing emails. Server-only.

#6Resend
resend
3KB
gzipped
8KB min✓ Tree-shakeableESMTypeScript

Server-only SDK — doesn't affect client bundle at all.

#7Jotai
jotai
3KB
gzipped
8KB min✓ Tree-shakeableESMTypeScript

Atomic state for React. Comparable to Zustand in size. Each atom tree-shakes independently — only pay for state you use.

#8Unkey
@unkey/api
3KB
gzipped
8KB min✓ Tree-shakeableESMTypeScript

Ultra-light API key verification client. Mostly fetch wrappers. Works in edge runtimes. Negligible bundle impact.

#9Ky
ky
3.5KB
gzipped
10KB min✓ Tree-shakeableESMTypeScript

Tiny fetch wrapper with retries, hooks, and JSON shortcuts. Great axios replacement for browsers.

#10Zustand
zustand
3.5KB
gzipped
10KB min✓ Tree-shakeableESMTypeScript

Minimal state management. No context providers, no boilerplate. One of the best size-to-capability ratios in React state.

#11Lucia
lucia
4KB
gzipped
12KB min✓ Tree-shakeableESMTypeScript

Ultra-light auth library. No UI components, no bloat. Just sessions.

#12Tinybird Events
@tinybirdco/flock
4KB
gzipped
12KB min✓ Tree-shakeableESMTypeScript

Tiny event ingestion client for Tinybird. Designed for browser usage with batching. Minimal client bundle impact.

#13OpenStatus
@openstatus/react
4KB
gzipped
12KB min✓ Tree-shakeableESMTypeScript

Status page widget for React. Tiny embed component. Full monitoring runs server-side with zero client impact.

#14Tinybird SDK
@tinybirdco/flock
4KB
gzipped
12KB min✓ Tree-shakeableESMTypeScript

Event ingestion SDK with batching. Designed for browser usage. Minimal footprint for real-time analytics tracking.

#15Hono
hono
5KB
gzipped
14KB min✓ Tree-shakeableESMTypeScript

Ultra-light web framework. Runs everywhere — Workers, Deno, Bun, Node. Middleware is modular.

#16Valibot
valibot
5KB
gzipped
14KB min✓ Tree-shakeableESMTypeScript

Modular Zod alternative. Per-schema tree-shaking means you only bundle the validators you actually use. Best-in-class size for validation.

#17PlanetScale
@planetscale/database
5KB
gzipped
14KB min✓ Tree-shakeableESMTypeScript

Tiny HTTP-based MySQL driver. Works in edge runtimes and Cloudflare Workers — no TCP required. One of the lightest database drivers available.

#18Dub
dub
5KB
gzipped
15KB min✓ Tree-shakeableESMTypeScript

Link management SDK. Thin REST client for creating/managing short links. Server-only in practice.

#19Hasura
graphql-request
5.5KB
gzipped
18KB min✓ Tree-shakeableESMTypeScript

No dedicated SDK — use graphql-request or any GraphQL client. Minimal overhead.

#20Neon
@neondatabase/serverless
6KB
gzipped
18KB min✓ Tree-shakeableESMTypeScript

Minimal driver — Postgres wire protocol over WebSocket. Very efficient.

#21Upstash Ratelimit
@upstash/ratelimit
6KB
gzipped
18KB min✓ Tree-shakeableESMTypeScript

Serverless rate limiting library. Tiny footprint, edge-compatible. Pairs with @upstash/redis for zero-infra rate limiting.

#22Radix UI
@radix-ui/react-dialog
6KB
gzipped
18KB min✓ Tree-shakeableESMTypeScript

Per-primitive packages. Import only what you use. Dialog shown here — full component suite is ~50 separate packages.

#23Axiom
@axiomhq/js
6KB
gzipped
18KB min✓ Tree-shakeableESMTypeScript

Lightweight log ingestion client. Server-side only in practice — no client bundle impact. REST-based so works in any runtime including edge.

#24PartyKit
partykit
6KB
gzipped
18KB min✓ Tree-shakeableESMTypeScript

Multiplayer infrastructure SDK. Client connection library is tiny. Server part runs on Cloudflare Workers — no bundle impact.

#25Replicate
replicate
7KB
gzipped
22KB min✓ Tree-shakeableESMTypeScript

Minimal API client — mostly fetch wrappers. Server-only, zero client bundle impact.

#26Upstash Redis
@upstash/redis
7KB
gzipped
22KB min✓ Tree-shakeableESMTypeScript

Tiny REST-based Redis client. Works in edge runtimes and serverless where TCP connections aren't available. Far lighter than ioredis.

#27Documenso
@documenso/embed-react
7KB
gzipped
22KB min✓ Tree-shakeableESMTypeScript

E-signature embed component. Loads signing UI in an iframe. Host page cost is minimal — just the loader component.

#28PocketBase SDK
pocketbase
7KB
gzipped
22KB min✓ Tree-shakeableESMTypeScript

Lightweight BaaS client. Includes auth, CRUD, realtime subscriptions. One of the smallest full BaaS SDKs available.

#29Polar
@polar-sh/sdk
8KB
gzipped
28KB min✓ Tree-shakeableESMTypeScript

Monetization SDK for OSS. Server-only for webhook handling. Checkout embeds load via iframe — minimal host page impact.

#30Arcjet
@arcjet/next
8KB
gzipped
25KB min✓ Tree-shakeableESMTypeScript

Security middleware for Next.js. Runs in server middleware — zero client bundle cost. Rate limiting, bot detection, email validation.

#31Cerebras
cerebras-cloud-sdk
8KB
gzipped
28KB min✓ Tree-shakeableESMTypeScript

OpenAI-compatible SDK. Lean client. Server-only. Fastest inference means streaming overhead is barely noticeable.

#32tRPC
@trpc/client
9KB
gzipped
28KB min✓ Tree-shakeableESMTypeScript

Core client is lean. @trpc/react-query adds ~15KB. Type inference happens at build time — zero runtime overhead for types.

#33React Hook Form
react-hook-form
9KB
gzipped
33KB min✓ Tree-shakeableESMTypeScript

Lean form library. Uncontrolled inputs minimize re-renders. ~30KB lighter than Formik with comparable features.

#34Arctic
arctic
9KB
gzipped
28KB min✓ Tree-shakeableESMTypeScript

OAuth 2.0 provider library with 50+ providers. Tree-shaking is essential — each provider is a separate import. Only ships the providers you use.

#35Together AI
together-ai
9KB
gzipped
32KB min✓ Tree-shakeableESMTypeScript

OpenAI-compatible client. Lightweight — mostly fetch wrappers with streaming support. Server-only in practice.

#36Meilisearch
meilisearch
10KB
gzipped
35KB min✓ Tree-shakeableESMTypeScript

Light search client. Can be imported client-side without worry.

#37Cal.com Embed
@calcom/embed-react
10KB
gzipped
32KB min✓ Tree-shakeableESMTypeScript

Lightweight embed component. Scheduling UI is loaded in an iframe — host page impact is minimal.

#38Infisical
@infisical/sdk
10KB
gzipped
35KB min✓ Tree-shakeableESMTypeScript

Secrets management SDK. Server-only — fetches secrets at startup. Minimal overhead once cached. No client bundle impact.

#39Uploadthing
uploadthing
11KB
gzipped
38KB min✓ Tree-shakeableESMTypeScript

Small upload client. React components (@uploadthing/react) add ~20KB but are optional.

#40Mailgun
mailgun.js
11KB
gzipped
38KB min✓ Tree-shakeableESMTypeScript

Lean email client. Modern rewrite is much lighter than the legacy mailgun-js package.

#41Yup
yup
12KB
gzipped
42KB min✓ Tree-shakeableESM

Lighter than Zod but weaker TypeScript inference. Consider valibot for best size-to-type-safety ratio.

#42Novu
@novu/node
12KB
gzipped
42KB min✓ Tree-shakeableESMTypeScript

Server-side notification SDK. Moderate size. @novu/notification-center (React) adds ~85KB for in-app notifications UI.

#43Mistral AI
@mistralai/mistralai
12KB
gzipped
42KB min✓ Tree-shakeableESMTypeScript

Official SDK with streaming, function calling, and JSON mode. Moderate size for an AI client. Server-only.

#44TanStack Query
@tanstack/react-query
13KB
gzipped
42KB min✓ Tree-shakeableESMTypeScript

Excellent size for what it does. DevTools are separate — no production impact.

#45Better Auth
better-auth
13KB
gzipped
45KB min✓ Tree-shakeableESMTypeScript

Lightweight auth framework. Plugin system keeps core small — only pay for what you use.

#46SendGrid
@sendgrid/mail
13KB
gzipped
45KB min✓ Tree-shakeableESMTypeScript

Light mail-only package. The full @sendgrid/client is heavier but rarely needed.

#47Lago
lago-javascript-client
13KB
gzipped
45KB min✓ Tree-shakeableESMTypeScript

Billing API client. Auto-generated from OpenAPI. Server-only — handles metering, invoicing, subscriptions.

#48Stripe
@stripe/stripe-js
14KB
gzipped
42KB min✗ No tree-shakingESMTypeScriptSide effects

Thin loader — loads full Stripe.js (~80KB) async from CDN. Initial bundle impact is small.

#49Typesense
typesense
14KB
gzipped
48KB min✓ Tree-shakeableESMTypeScript

Slightly heavier than Meilisearch but still reasonable for a search client.

#50Zod
zod
14KB
gzipped
58KB min✓ Tree-shakeableESMTypeScript

Popular validation. Consider valibot (~6KB) for bundle-sensitive apps.

#51Axios
axios
14KB
gzipped
55KB min✗ No tree-shakingESMTypeScript

Popular but heavy for what it does. Native fetch + a tiny wrapper (ky at ~3KB) is lighter.

#52React Router
react-router
14KB
gzipped
47KB min✓ Tree-shakeableESMTypeScript

Standard for React routing. v7 merges Remix patterns. Tree-shakes better than v6. Reasonable size for what it provides.

#53TanStack Table
@tanstack/react-table
14KB
gzipped
54KB min✓ Tree-shakeableESMTypeScript

Headless table primitives — you bring the markup. Reasonable size for a fully featured grid engine. AG Grid is 5x larger.

#54Sanity
@sanity/client
15KB
gzipped
52KB min✓ Tree-shakeableESMTypeScript

Light CMS client. GROQ queries are string-based — no heavy query builder bundled.

#55Langfuse
langfuse
15KB
gzipped
52KB min✓ Tree-shakeableESMTypeScript

LLM observability SDK. Server-only tracing. Wraps OpenAI/Anthropic calls with minimal overhead. Batches telemetry data.

#56Drizzle ORM
drizzle-orm
16KB
gzipped
55KB min✓ Tree-shakeableESMTypeScript

Lightweight ORM. Much smaller than Prisma client (~400KB). Great tree-shaking.

#57Motion (Framer)
motion
16KB
gzipped
55KB min✓ Tree-shakeableESMTypeScript

Lighter rebrand of Framer Motion. ~60% smaller than the full framer-motion package. Same API, better tree-shaking.

#58WorkOS
@workos-inc/node
16KB
gzipped
55KB min✓ Tree-shakeableESMTypeScript

Enterprise auth SDK. Server-only. Moderate size covering SSO, Directory Sync, and User Management. Clean TypeScript types.

#59TanStack Router
@tanstack/react-router
17KB
gzipped
58KB min✓ Tree-shakeableESMTypeScript

Type-safe routing with file-based or code-based config. Larger than React Router but inference is unmatched — every param is typed end-to-end.

#60Knock
@knocklabs/client
18KB
gzipped
65KB min✓ Tree-shakeableESMTypeScript

Notification infrastructure client. Reasonable size. The React feed components (@knocklabs/react) add ~80KB more — only import on routes that need them.

#61Appwrite
appwrite
19KB
gzipped
68KB min✓ Tree-shakeableESMTypeScript

Reasonable BaaS client. Slightly smaller than Supabase. Individual services tree-shake well.

#62AI SDK (Vercel)
ai
19KB
gzipped
65KB min✓ Tree-shakeableESMTypeScript

Vercel's AI SDK with streaming primitives. Lean core with provider-specific subpath imports. Works on edge and Node.

#63LiveKit Server
livekit-server-sdk
19KB
gzipped
65KB min✓ Tree-shakeableESMTypeScript

Server-side SDK for room management and token generation. Moderate size. Protobuf definitions add some weight. No client bundle impact.

#64Turso
@libsql/client
20KB
gzipped
68KB min✓ Tree-shakeableESMTypeScript

Lightweight LibSQL driver with embedded replica support. Works in edge runtimes and serverless.

#65Supabase
@supabase/supabase-js
21KB
gzipped
72KB min✓ Tree-shakeableESMTypeScript

Reasonable size for full BaaS client. Tree-shaking works — import only what you need.

#66Contentful
contentful
22KB
gzipped
75KB min✗ No tree-shakingESMTypeScript

Moderate CMS client. Includes rich-text resolvers which add weight. Use REST directly for lighter option.

#67date-fns
date-fns
22KB
gzipped
85KB min✓ Tree-shakeableESMTypeScript

Excellent tree-shaking — import only used functions. Typical usage adds 3-8KB gzipped.

#68Google Gen AI
@google/generative-ai
22KB
gzipped
78KB min✓ Tree-shakeableESMTypeScript

Gemini SDK. Reasonably sized. Server-side preferred but works in browser too. Lighter than OpenAI SDK.

#69NextAuth.js
next-auth
24KB
gzipped
85KB min✗ No tree-shakingESMTypeScriptSide effects

Moderate weight for auth. SessionProvider adds ~10KB to client bundle.

#70Deepgram
@deepgram/sdk
24KB
gzipped
85KB min✓ Tree-shakeableESMTypeScript

Speech-to-text SDK. Moderate size. WebSocket streaming adds weight but tree-shakes if unused.

#71Hanko
@teamhanko/hanko-elements
24KB
gzipped
85KB min✓ Tree-shakeableESMTypeScriptSide effects

Passkey auth web components. Includes login/registration UI. Moderate size for a full auth frontend. Custom elements hydrate on demand.

#72Lodash
lodash
25KB
gzipped
72KB min✗ No tree-shaking

Full bundle is wasteful. Use lodash-es for tree-shaking or individual lodash/method imports.

#73Lexical
lexical
25KB
gzipped
85KB min✓ Tree-shakeableESMTypeScript

Meta's editor framework. Core is lean; plugins add weight per feature. Comparable to Tiptap in real-world bundle.

#74Stack Auth
@stackframe/stack
27KB
gzipped
95KB min✓ Tree-shakeableESMTypeScriptSide effects

Full auth client with pre-built React components. Similar weight to Clerk but open-source. Server components reduce client-side impact.

#75PostHog
posthog-js
28KB
gzipped
95KB min✗ No tree-shakingESMTypeScriptSide effects

Moderate size for analytics. Autocapture adds weight — disable if unused to save ~10KB.

#76Anthropic
@anthropic-ai/sdk
28KB
gzipped
95KB min✓ Tree-shakeableESMTypeScript

Server-only SDK. Clean TypeScript, no unnecessary browser polyfills.

#77Trigger.dev
@trigger.dev/sdk
28KB
gzipped
95KB min✓ Tree-shakeableESMTypeScript

Server-only background job SDK. Moderate size with good tree-shaking. No client bundle impact.

#78Tiptap
@tiptap/react
28KB
gzipped
95KB min✓ Tree-shakeableESMTypeScript

Rich-text editor core. Each extension adds 2-15KB. Most apps ship 150-300KB total with common extensions.

#79Trigger.dev v3
@trigger.dev/sdk
28KB
gzipped
95KB min✓ Tree-shakeableESMTypeScript

Background job SDK for long-running tasks. Server-only — no client bundle impact. v3 architecture runs in separate worker processes.

#80ElectricSQL
electric-sql
28KB
gzipped
95KB min✓ Tree-shakeableESMTypeScript

Local-first sync engine. Client-side SQL with Postgres replication. Moderate size for a full sync runtime. Includes SQLite WASM adapter.

#81Inngest
inngest
32KB
gzipped
110KB min✓ Tree-shakeableESMTypeScript

Server-only SDK for durable functions. Type-safe event schemas add some weight but tree-shake well.

#82Liveblocks
@liveblocks/client
32KB
gzipped
110KB min✓ Tree-shakeableESMTypeScript

Realtime collaboration client. Moderate size for what it does. @liveblocks/react adds ~40KB more. Only import on routes that need collab features.

#83Inngest
inngest
32KB
gzipped
110KB min✓ Tree-shakeableESMTypeScript

Server-only durable function SDK. Type-safe event schemas add overhead but tree-shake well. Zero client bundle impact — all logic runs server-side.

#84Pinecone
@pinecone-database/pinecone
35KB
gzipped
120KB min✓ Tree-shakeableESMTypeScript

Server-only. Moderate size for a vector DB client.

#85Pinecone
@pinecone-database/pinecone
35KB
gzipped
120KB min✓ Tree-shakeableESMTypeScript

Server-only vector DB client. Moderate size. Auto-generated from OpenAPI — covers every endpoint but most apps use 3-4 methods.

#86OpenAI
openai
38KB
gzipped
145KB min✓ Tree-shakeableESMTypeScript

Server-only in practice. Streaming helpers add weight but tree-shake well.

#87Convex
convex
38KB
gzipped
135KB min✓ Tree-shakeableESMTypeScript

Full reactive BaaS client. Heavier than Supabase but includes realtime sync engine. Tree-shakes well.

#88Framer Motion
framer-motion
42KB
gzipped
140KB min✓ Tree-shakeableESMTypeScript

Heavy animation library — but tree-shakes well in v11. The new motion package (~30KB) is the lighter rebrand if size matters.

#89Highlight.io
@highlight-run/next
42KB
gzipped
145KB min✓ Tree-shakeableESMTypeScriptSide effects

Session replay + error tracking + logging. Heavier than Sentry alone but replaces multiple tools. Record worker runs in a Web Worker.

#90Auth0
@auth0/nextjs-auth0
52KB
gzipped
180KB min✗ No tree-shakingESMTypeScriptSide effects

Heavier than Clerk but less UI bundled. Server-side auth handling keeps client lighter.

#91Effect
effect
52KB
gzipped
185KB min✓ Tree-shakeableESMTypeScript

Functional programming runtime. Heavy but tree-shakes well — most apps use a fraction. Server-side only in practice.

#92ioredis
ioredis
55KB
gzipped
195KB min✗ No tree-shakingSide effects

Feature-rich Redis client but heavy. For serverless, @upstash/redis at ~20KB is far lighter.

#93Datadog
@datadog/browser-rum
62KB
gzipped
210KB min✗ No tree-shakingESMTypeScriptSide effects

Heavy RUM SDK. Consider server-side APM only if bundle size matters.

#94Chart.js
chart.js
65KB
gzipped
195KB min✓ Tree-shakeableESMTypeScript

Moderate charting lib. Register only needed chart types and scales to tree-shake ~40% off.

#95Sentry
@sentry/nextjs
78KB
gzipped
280KB min✓ Tree-shakeableESMTypeScriptSide effects

Significant bundle cost. Use @sentry/browser with selective integrations to cut by ~50%.

#96D3.js
d3
82KB
gzipped
280KB min✓ Tree-shakeableESM

Full bundle is huge. Import individual modules (d3-scale, d3-shape) — each is 2-15KB gzipped.

#97LiveKit
@livekit/components-react
82KB
gzipped
285KB min✓ Tree-shakeableESMTypeScriptSide effects

WebRTC components are inherently heavy. Core livekit-client is ~200KB alone. Lazy-load for video-call features.

#98Clerk
@clerk/nextjs
85KB
gzipped
310KB min✗ No tree-shakingESMTypeScriptSide effects

Heavy for auth — includes UI components. @clerk/backend is lighter at ~15KB gzipped.

#99AWS SDK v3
@aws-sdk/client-s3
88KB
gzipped
320KB min✓ Tree-shakeableESMTypeScript

Per-service packages are huge individually. Tree-shaking helps but middleware stack adds baseline cost. Server-only.

#100Stripe Node
stripe
92KB
gzipped
340KB min✗ No tree-shakingESMTypeScript

Server-only Node SDK — never import client-side. Large but it's your backend, not the browser bundle.

#101MongoDB
mongodb
105KB
gzipped
380KB min✗ No tree-shakingESMTypeScriptSide effects

Very heavy driver. Server-only but bloats serverless bundles. Consider Mongoose alternatives or direct Atlas Data API.

#102Mantine
@mantine/core
110KB
gzipped
420KB min✓ Tree-shakeableESMTypeScriptSide effects

Full component library — includes 100+ components. Tree-shaking reduces real-world impact significantly. RTL support included.

#103Prisma
@prisma/client
115KB
gzipped
420KB min✗ No tree-shakingTypeScriptSide effects

Very heavy — generated client. Server-only but affects serverless cold starts.

#104HubSpot
@hubspot/api-client
130KB
gzipped
480KB min✗ No tree-shakingESMTypeScriptSide effects

Massive SDK — auto-generated from OpenAPI spec covering every HubSpot API. Server-only, use REST for lighter alternative.

#105Twilio
twilio
140KB
gzipped
520KB min✗ No tree-shakingTypeScriptSide effects

Massive server SDK — covers every Twilio API. Server-only but crushes serverless cold starts.

#106Three.js
three
175KB
gzipped
680KB min✓ Tree-shakeableESMTypeScript

Massive 3D engine. Tree-shaking helps but core is still ~100KB gzipped. Lazy-load if possible.

#107New Relic
newrelic
180KB
gzipped
650KB min✗ No tree-shakingSide effects

Extremely heavy APM agent. Server-only but significantly increases cold start times in serverless.

#108Firebase
firebase
230KB
gzipped
820KB min✓ Tree-shakeableESMSide effects

Massive full SDK. Modular imports (firebase/auth, firebase/firestore) reduce to ~80-150KB gzipped per service.

Zero Bundle Impact

RailwayCLI-only — no client SDK. Zero bundle impact.
Tailwind CSSBuild tool only — zero runtime JS. CSS output is purged to only used classes.
RenderCLI-only — no client SDK. Zero bundle impact. Manage via REST API with fetch.
PlaywrightTest framework — devDependency only. Downloads browser binaries (~300MB) but zero production bundle impact.
CypressTest runner — devDependency only. Massive install (~800MB with Electron) but no production bundle cost.
VitestTest framework — devDependency only. Uses Vite's transform pipeline. Zero production impact.
NuxtFramework — build tool only, not a client bundle. Runtime payload depends on modules enabled.
SvelteKitFramework — compiler outputs minimal JS. Svelte components compile away at build time, no runtime virtual DOM overhead.
AstroIslands architecture framework. Ships zero JS by default — components hydrate only when needed. Best-in-class for content sites.
shadcn/uiNot a package — you own the code. Each component you add is exactly what ships. Zero unused component weight, ever.
Payload CMSAdmin panel and API framework — server-only. No client bundle impact. Types auto-generated from your collection config.
MintlifyCLI-only for docs generation. No runtime SDK — docs are static sites. Zero production bundle impact.
Payload CMS 3.0Server-only CMS framework. Lives inside your Next.js app. Admin panel is a separate route — no impact on your app's client bundle.
Svelte 5Compiler — components compile to vanilla JS at build time. Runes system has ~2KB runtime. No virtual DOM overhead.

Explore other areas