Skip to content

Introduction

kit is a small set of TypeScript packages that handle the boring problems every side project hits in the first week: state that needs to survive a refresh, HTTP calls that need to be cancellable and retryable, structured logs you can ship somewhere, and config you can validate at boot.

It’s deliberately scoped. Not a framework. Not a state-management opinion. Not a data-fetching mega-library. Four packages, each independently installable, each under a few KB, no peer-dependency soup.

  • Not a TanStack Query replacement. fetch-kit has a simple response cache and in-flight dedupe, but it doesn’t do normalized caching, optimistic updates with rollback, or background refetching. If you need those, pair it with TanStack Query — or don’t, most apps don’t need it.
  • Not a Redux. store-kit doesn’t try to be the one true source of state. Use as many stores as you want.
  • Not a winston / pino replacement on the server. log-kit is small enough to use everywhere; if you need Node-specific transports beyond what’s bundled, write a custom transport (it’s an interface).
  • Not a router, form library, or component framework. Compose with whatever you’re already using.

Reach for kit when you’re starting a side project and want the boring parts already done. Skip it if your app needs sophisticated server-state caching, optimistic updates with rollback, or normalized state — those problems need bigger tools.