SOLEN

Your app should never know what an email looks like.

Solen is the internal email platform: one SDK for every application, templates managed centrally, providers abstracted away, and every send logged where you can actually see it.

SEND-WELCOME.TSSOLEN SDK
// the entire email integration
import { EmailClient } from "solen-sdk";

const mail = new EmailClient({ apiKey: process.env.SOLEN_API_KEY });

await mail.send({
  template: "welcome-email",
  to: "student@example.com",
  variables: { name: "Priya", school: "Northside High" },
});
EVERY TRANSACTIONAL EMAIL RUNS THROUGH SOLEN
SCHOOLOSWALLETCRMERP

Five apps, five SMTP configs, five copies of the same welcome email.

Every application used to carry its own email stack: provider credentials in another env file, Nodemailer wired up one more time, HTML templates pasted between repos and drifting apart, and - when something failed - log files on a server someone else owns.

Solen replaces all of it with a single platform. Applications send a template identifier, a recipient, and variables. Everything else - rendering, provider communication, error handling, history - happens centrally, where it can be managed, audited, and fixed once.

The platform owns the whole lifecycle.

Templates
Written once in the dashboard, previewed and test-sent per project, rendered with your variables. No HTML ever ships inside application code.
Sender identities
Each project sends as itself - SchoolOS <schoolos@…>, Wallet <wallet@…> - from one verified domain.
Providers
Resend today; SES, SendGrid, or raw SMTP tomorrow. Switching providers changes nothing in any client application.
Access control
Projects, members, and roles. Applications authenticate with scoped API keys you can rotate or revoke in one click.
Logging
Every request is logged - success or failure - with recipient, template, provider, and the exact error message.
Analytics
Volume, success rate, per-template and per-project usage. Know what your apps are sending without asking them.

The log is the product.

Every send is recorded whether it succeeds or fails - with the recipient, the template, the provider, and the exact error. When a customer says “I never got the email,” you answer from the dashboard, not from an SSH session into the application server.

Search it, filter it, paginate it. Per project, in real time.

SCHOOLOS · LOGSLIVE
14:02:11welcome-emailpriya@northside.eduSUCCESS
14:01:56otp-codej.osei@wallet.appSUCCESS
14:01:40transaction-alertm.tanaka@example.comSUCCESS
14:00:19password-resetwho@nowhereFAILED
13:59:03grade-reporta.novak@northside.eduSUCCESS

INSTALL · GENERATE A KEY · SEND

Ship your last email integration.