Skip to content

Comparison with Alternatives

Feature Matrix

Featurefetch-smartlyaxioskygotofetch
Zero dependenciesYesNo (6)No (2)No (11)No (4)
Native fetch basedYesNo (XMLHttpRequest)YesNo (http module)Yes
Isomorphic (Node + Browser)YesYesYesNode onlyYes
Edge runtime supportYesNoYesNoYes
TypeScript (strict)YesPartialYesYesYes
Retry with backoffYesPluginYesYesYes
Retry-After header respectYesNoNoNoNo
Circuit breakerYesNoNoNoNo
Request deduplicationYesNoNoNoNo
Offline queueYesNoNoNoNo
Typed error hierarchyYesPartialPartialYesPartial
AbortController timeoutYesYesYesYesYes
User signal compositionYesNoNoNoNo
Bundle size (min)~16KB~29KB~10KBNode only~12KB

When to Choose fetch-smartly

  • You need zero dependencies and care about supply chain security
  • You want circuit breaker and deduplication built-in, not as separate packages
  • You need to work across Node.js, browsers, and edge runtimes with one API
  • You want strict TypeScript with typed errors you can pattern-match on
  • You want Retry-After header respect for 429 responses out of the box

When to Choose Something Else

  • axios — If you need interceptors, request/response transforms, or XMLHttpRequest support for older browsers
  • ky — If you want a tiny fetch wrapper without retry orchestration or circuit breakers
  • got — If you're Node.js only and need streams, pagination, or cookie support
  • ofetch — If you want Nuxt/Nitro integration

Released under the MIT License.