The AppSync client that fits in 3 KB.
Every auth mode. Zero dependencies.
A tiny, fully-typed, fetch-based GraphQL client for AWS AppSync — built for Node, the browser, Cloudflare Workers, Vercel Edge, Deno, and Bun. End-to-end TypeScript inference through TypedDocumentNode, retries that actually understand AppSync, and errors you can switch on.
A thin, opinionated middle.
Sits between hand-rolled fetch + SigV4 plumbing and the 200 KB all-batteries SDK. Optimised for teams that already have a state layer (TanStack Query, SWR, your own store) and just want a typed, correct AppSync transport.
TypedDocumentNode and the client infers both the response and the variables. One source of truth, zero hand-written response types.API_KEY, AWS_IAM (SigV4), AMAZON_COGNITO_USER_POOLS, OPENID_CONNECT, and AWS_LAMBDA — typed as a discriminated union so bad combos won't compile.code fields on every error: AppSyncGraphQLError, AppSyncHttpError, AppSyncNetworkError, AppSyncAbortError. No more stringly-typed catches.node_modules. SigV4 implemented with node:crypto (or browser SubtleCrypto). Audit it in 15 minutes.Every AppSync auth mode. Same client.
One discriminated auth field, all five AWS-supported modes — including SigV4 written from scratch on node:crypto with zero dependencies. Swap type and TypeScript narrows the rest.
Receipts.
Not a marketing claim — measured by size-limit, publint, @arethetypeswrong/cli, and Vitest in CI on Node 18 / 20 / 22 across Ubuntu, macOS, and Windows.