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
- Add
capabilities:to yourkyper.yml - Push your app — Kyper validates the capability names
- When a consumer subscribes, Kyper starts managed-only apps immediately
- If payments or SMS are declared, the configure page shows only the buyer-managed service setup
- On deploy, Kyper injects resolved service env vars into the container
# 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 |
|---|---|---|---|
| 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:
- Consumer-provided env vars (from the configure page)
- Resolved service credentials (override matching consumer entries to prevent stale values)
- 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.