Skip to main content

The Adapter / Plugin Framework

Subscriberbot is designed to be a neutral network, not a scraper. Providers connect to it by shipping an adapter — a plugin that implements a well-defined contract. This is the mechanism that lets one platform speak to thousands of different services.

The meta / provider model

The framework follows a two-tier plugin pattern: a meta layer defined by Subscriberbot that knows how to talk to adapters, and provider adapters built by (or for) each individual provider that know how to talk to that provider's systems.

Subscriberbot meta layer (defines the contract)

├── adapter: openai ┐
├── adapter: netflix │ provider adapter extensions
├── adapter: aws │ — one per provider
└── adapter: acme-newsletter ┘

A provider does nothing to be represented in Subscriberbot's discovery and management beyond, optionally, building an adapter to enable deeper, first-party integration (such as one-click subscribe and cancel).

What an adapter implements

An adapter maps a provider's world onto Subscriberbot's domain entities. At a high level it can implement:

CapabilityPurpose
Identity linkingConnect a Subscriberbot identity to the provider account.
Relationship syncReport the user's active subscriptions, plans, and entitlements.
Lifecycle actionsSubscribe, unsubscribe, upgrade, downgrade, pause, resume.
Billing syncSurface invoices, payment instruments, and renewal dates.
Communication syncFeed provider messages into the Universal Inbox.
Catalog metadataPublish plans and features into the discovery marketplace.

Adapters declare which capabilities they support; the platform degrades gracefully when a capability is absent (for example, falling back to AI-assisted discovery when no relationship sync exists).

Capability declaration (illustrative)

{
"adapter": "acme",
"provider": "Acme Inc.",
"version": "1.0.0",
"capabilities": [
"identity.link",
"relationship.sync",
"lifecycle.cancel",
"billing.invoices",
"comms.inbox"
]
}

See the Build an Adapter guide for a step-by-step walkthrough.

Environment selection

Adapter development and testing can target production, alpha, or local gateways. Set BURDENOFF_ENV=local|alpha when running the local backend or testing against non-prod endpoints. See Environment Selection for endpoint details.