Services

Declare app capabilities without forcing buyers through unnecessary provider setup.

Overview

Declare capabilities in your kyper.yml. Email, Google Maps, and Mapbox use Kyper-managed providers by default, so normal hosted subscriptions can launch after checkout. Payments and SMS require the buyer's own provider account or credentials.

There are two setup modes:

  • Kyper-managed — Kyper injects platform credentials for email, Google Maps, and Mapbox.
  • Buyer-managed — Buyers connect Stripe or provide Twilio credentials when the app needs payments or SMS.

How it works

  1. Add capabilities: to your kyper.yml
  2. Push your app — Kyper validates the capability names
  3. When a consumer subscribes, Kyper starts managed-only apps immediately
  4. If payments or SMS are declared, the configure page shows only the buyer-managed service setup
  5. On deploy, Kyper injects resolved service env vars into the container
yaml
# kyper.yml
name: "payment-tracker"
version: "1.0.0"
category: finance

docker:
  dockerfile: "./Dockerfile"

capabilities:
  - payments
  - email

env:
  - CUSTOM_WEBHOOK_URL  # Only list keys that consumers provide manually

Available capabilities

Capability Default source Provider Use case
email Kyper-managed Resend Transactional email
maps Kyper-managed Google Maps Maps, geocoding
mapbox Kyper-managed Mapbox Maps, geocoding
payments Buyer-managed Stripe Payments, subscriptions
sms Buyer-managed Twilio SMS, phone verification

Managed Mapbox

When you declare mapbox, Kyper injects MAPBOX_ACCESS_TOKEN. The existing maps capability remains Google Maps and injects GOOGLE_MAPS_API_KEY.

Managed email: the sender address

When you declare email, Kyper injects two variables: the transport key RESEND_API_KEY and a verified sender address KYPER_MAIL_FROM. Read the sender from KYPER_MAIL_FROM in your mailer config.

Do not add a sender/"from" address to env:. Managed email sends through Kyper's shared Resend account, so mail can only originate from a domain Kyper has verified — a buyer-supplied address would silently fail to deliver. Kyper provides a working sender so buyers don't have to.

Letting buyers send from their own verified domain is planned alongside custom domains. For now, use KYPER_MAIL_FROM.

Credential portability

Kyper is a steward, not a gatekeeper. Consumers can always view, copy, and export buyer-managed service credentials from their Connected Services page. If they leave Kyper, their credentials go with them.

Interaction with env vars

Service-provided keys are injected automatically — you do not need to list them in env:. The merge order is:

  1. Consumer-provided env vars (from the configure page)
  2. Resolved service credentials (override matching consumer entries to prevent stale values)
  3. Kyper auto-injected vars (PORT, SECRET_KEY_BASE, DATABASE_URL, etc. — always win)

Requesting new integrations

Need a capability we don't support yet? Let us know — we prioritize based on developer demand.