Wrappers,
not weight.

A collection of thin HTTP wrappers for the APIs your code already uses. Multiple purposes. Multiple languages. One developer-first outline across all of them.

npm install @thinwrap/notifications
or any other scope →
const x = new Email('sendgrid', cfg)Sms('twilio', cfg)Push('fcm', cfg)Chat('slack', cfg)Routing('google', cfg);
await x.send(input); // same call shape

const y = new Email('postmark', cfg)Sms('vonage', cfg)Push('apns', cfg)Chat('discord', cfg)Routing('mapbox', cfg);
// → result.raw preserves vendor response
// → result shape identical across providers

Four pillars

  • 01

    Zero deps

    Native fetch on TS. PSR-18 on PHP. No vendor SDK weight. No transitive bloat.

  • 02

    One-line switch

    Swap providers with a config flag. Same call shape, same result shape, every time.

  • 03

    Cross-language

    Identical facade names, error model, and result shapes in TypeScript and PHP. One audit, two stacks.

  • 04

    Docs, human & agent

    Detailed per-package docs and copy-paste snippets for humans — plus the same facts as structured data an LLM can cite verbatim instead of hallucinating.

Production proof

−49.94 MBBundle size
−3 minCI build time
~17%Build savings

We replaced @novu/providers (50 MB transitive) with @thinwrap/notifications (60 KB, zero runtime deps) in production. Same interfaces, one-line import change, identical provider IDs. Three minutes shaved off every CI/QA/prod build.

Ryde Mobility · @novu/providers → @thinwrap/notifications
// why now

The post-axios
supply-chain era.

In March 2026, a backdoor in axios — used in ~100M weekly downloads — reached production via the standard npm install path. It wasn't the first; it won't be the last.

Every vendor SDK you install ships dozens of transitive dependencies you didn't audit. Most of them call out to update servers, run lifecycle scripts on install, and bundle code you'll never use.

Thinwrap is one direct HTTP call to the vendor's documented endpoint. No SDK weight. No lifecycle scripts. The dependency tree your security team can actually read.

Scopes

// what we wrap, by purpose
  • live
    notifications

    Email, SMS, push, chat across 35 providers. One facade per channel.

  • live
    location

    Routing, matrix, geocoding, isochrone across 6 providers. Self-host OSRM supported.

  • vision
    ai-gateway

    LLM completions, embeddings, image generation across major model vendors.

  • vision
    payments

    Charges, refunds, subscriptions across major payment vendors.

  • vision
    auth-identity

    SSO, OAuth flows, JWT issuance, identity provider integrations.

  • vision
    storage

    Object storage, key-value, blob abstractions across cloud vendors.