SOLEN

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:

your-app/src/mail.tstypescript
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