Skip to Content
SDK Kit is in active development. APIs may change.
SDK Kit

SDK Kit

A blueprint for building JavaScript SDKs

SDK Kit provides a composable, plugin-based architecture for building type-safe, tree-shakeable JavaScript SDKs. Built with TypeScript and designed for modern development workflows, it offers the flexibility of a minimal core with the power of capability-based plugins. Whether you’re shipping a client library for your API, building a browser SDK for your product, or learning how modern SDKs work—SDK Kit gives you the patterns to create something production-ready.

Latest Release: v1.0.0 — Production-ready SDK framework with functional plugin architecture

Why SDK Kit?

Building a JavaScript SDK from scratch is hard. You need to figure out architecture, plugin systems, configuration management, events, storage, and more. SDK Kit gives you a proven blueprint:

  • Functional Plugins - Pure functions with explicit dependencies, no classes or hidden state
  • Event-Driven Coordination - Plugins communicate through events with wildcard patterns
  • Type-Safe - Full TypeScript support throughout
  • Tree-Shakeable - Users only bundle what they use
  • Battle-Tested Patterns - Architecture proven in production SDKs
  • Essential Building Blocks - 6 plugins covering storage, context, transport, queuing, polling, and consent
  • Learn by Building - Understand how modern SDKs work by creating your own

Quick Start

Build your first SDK in minutes:

Install

npm install @prosdevlab/sdk-kit @prosdevlab/sdk-kit-plugins

Compose Your SDK

import { SDK } from '@prosdevlab/sdk-kit' import { storagePlugin, contextPlugin, transportPlugin } from '@prosdevlab/sdk-kit-plugins' // Build your SDK from composable plugins const mySDK = new SDK() mySDK.use(storagePlugin) mySDK.use(contextPlugin) mySDK.use(transportPlugin) await mySDK.init({ storage: { namespace: 'mycompany' }, transport: { endpoint: 'https://api.mycompany.com' } })

Ship It

// Your SDK is ready to use mySDK.storage.set('userId', '123') const context = mySDK.context.get() await mySDK.transport.send({ event: 'pageview', context }) // Export and publish to npm for your users export default mySDK

Project Status

v1.0.0 Released! Production-ready SDK framework with complete plugin system.

Core Framework:

  • Core SDK with plugin system
  • 6 capabilities (Emitter, Config, Namespace, Expose, Requirer, Extensible)
  • Plugin-to-plugin communication via hold()
  • 219 tests with >90% coverage
  • Full TypeScript support

Essential Plugins:

  • Storage (localStorage/sessionStorage/cookies/memory)
  • Context (browser/device detection)
  • Poll (async resource polling)
  • Queue (batching & persistence)
  • Transport (fetch/beacon/pixel/XHR)
  • Consent (OneTrust/CookieBot)
  • Logging (Pino with privacy-first design)

Learn More

Experiment and Learn — SDK Kit is open source and MIT licensed. Use it to ship production SDKs, prototype ideas, or learn how modern SDK architecture works.

Last updated on