Introduction
Solen is the internal Email Platform - the single source of truth for every transactional email your applications send. Your application supplies a template identifier, a recipient, and variables; the platform does everything else.
Why a platform
Before Solen, every application configured its own SMTP or provider credentials, embedded its own HTML templates, and kept its own logs - which usually meant no logs. The platform centralizes the full email lifecycle:
- Templates live in the dashboard, not in application code.
- Providers (Resend today, others later) are abstracted behind one API - switching providers never touches client applications.
- Sender identities are configured per project.
- Every send is logged, success or failure, and searchable in real time.
- Access control - projects, members, roles, and scoped API keys.
How it fits together
The platform is organized around projects - one per application (SchoolOS, Wallet, CRM…). Each project owns its templates, sender identity, API keys, members, and logs. Applications integrate exclusively through the SDK or the HTTP API, authenticating with a project API key:
import { EmailClient } from "solen-sdk";
export const mail = new EmailClient({
apiKey: process.env.SOLEN_API_KEY!,
});
// anywhere in your app
await mail.send({
template: "welcome-email",
to: "student@example.com",
variables: { name: "Priya", school: "Northside High" },
});That is the entire integration. No SMTP, no provider SDK, no HTML.
Next steps
- Quickstart - from zero to a sent email in five minutes.
- Templates & variables - author, preview, and test-send.
- SDK reference - the full
solen-sdksurface. - HTTP API - for non-Node applications.