Ship apps with auth, billing & notifications built in
Multi-tenant backend platform with subdomain isolation. Auth, billing, notifications, and status pages — all managed through one dashboard.
import 'package:aldero/aldero.dart';
final aldero = AlderoClient(
config: AlderoConfig(
tenantSlug: 'myapp',
apiKey: 'bil_sk_...',
),
);
// Auth
final user = await aldero.auth.login(
email: 'user@example.com',
password: 'secret',
);
// Billing — check entitlements
final entitlements = await aldero.billing
.getEntitlements(userId: user.id);
// Notifications — send push
await aldero.notifications.send(
userId: user.id,
title: 'Welcome!',
body: 'Thanks for signing up.',
);Platform
Everything your app needs
Four services, one platform. Each isolated per tenant with its own subdomain, API keys, and configuration.
Authentication
Multi-tenant auth with OIDC, PKCE, MFA, passkeys, and hosted login pages. Per-tenant JWKS, session management, and user provisioning.
Billing
Product catalog, entitlements, and credit systems. RevenueCat and Stripe integrations with webhook-driven sync.
Notifications
Push notifications, email, and SMS. Device management, templates, and delivery tracking across all channels.
Status Pages
Public status pages per tenant with components, incidents, and real-time updates. Webhook alerts on status changes.
Architecture
Subdomain-isolated multi-tenancy
Each tenant gets dedicated subdomains across all services. Full isolation with zero configuration.
myapp.aldero.iomyapp.billing.aldero.iomyapp.ntf.aldero.iomyapp.status.aldero.ioSandbox environments use myapp-sandbox.*.aldero.io
Developer Experience
SDKs for every stack
First-class Dart and TypeScript SDKs with auto-refresh, typed responses, and zero boilerplate.
import 'package:aldero/aldero.dart';
final aldero = AlderoClient(
config: AlderoConfig(
tenantSlug: 'myapp',
apiKey: 'bil_sk_...',
),
);
// Auth
final user = await aldero.auth.login(
email: 'user@example.com',
password: 'secret',
);
// Billing — check entitlements
final entitlements = await aldero.billing
.getEntitlements(userId: user.id);
// Notifications — send push
await aldero.notifications.send(
userId: user.id,
title: 'Welcome!',
body: 'Thanks for signing up.',
);import { AlderoClient } from '@aldero/sdk';
const aldero = new AlderoClient({
tenantSlug: 'myapp',
apiKey: 'bil_sk_...',
});
// Auth
const user = await aldero.auth.login({
email: 'user@example.com',
password: 'secret',
});
// Billing — check entitlements
const entitlements = await aldero.billing
.getEntitlements(user.id);
// Notifications — send push
await aldero.notifications.send({
userId: user.id,
title: 'Welcome!',
body: 'Thanks for signing up.',
});