finds.dev← search

// the find

posva/mande

★ 1,332 · TypeScript · MIT · updated Jul 2026

800 bytes modern wrapper around fetch with smart defaults

mande is a minimal fetch wrapper that adds JSON defaults, error throwing on non-2xx, and per-instance option merging. It's aimed at frontend developers who are tired of rewriting the same fetch boilerplate but don't want to pull in axios.

800 bytes is a real constraint they've actually honored — the size-check directory exists precisely to enforce it. The instance-level options model (set headers once, override per-request, delete with null) is cleaner than what most people handroll. AbortSignal.timeout integration is native with no custom timeout logic to maintain. TypeScript generics on all request methods give you typed responses without ceremony.

No request/response interceptor system in the core — you get what fetch gives you, which means adding retry logic or auth refresh is your problem. The SSR story is explicitly incomplete: the README calls out that Nuxt 3 SSR with authentication 'hasn't been adapted yet' and points to an open issue (#308), which is a real gap if you're building anything with server-side auth. At 1.3k stars and 44 forks after years of existence, adoption is thin — you'll own your bugs. Error handling surfaces only statusText, not the response body, so your API's error payloads are silently dropped unless you implement your own error class.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →