Apache 2.0
Transmitly OSS logo

Transactional communications that scale with your app.

Design communications once, deliver across multiple channels and channel providers with templates, and delivery reports built in.

  • Channels: Email, SMS, Voice, Push
  • Providers: SMTP, SendGrid, Twilio, Infobip, Firebase
  • Templates: Fluid, Scriban, or your own template source

Delivery playbook

Pipeline → Provider → Delivery

  1. Define the pipeline Compose channel + template once per intent.
  2. Pick the provider Start with SMTP; swap SendGrid, Twilio, Infobip, Firebase in a central location.
  3. Dispatch and observe Send from your app and collect delivery reports with ease.
Vendor-agnostic, template-friendly, and ready for your stack.

Why teams pick Transmitly

Strategy first

Pipeline-driven delivery

Centralize how each communication is composed and dispatched across channels.

Adapter friendly

No provider lock-in

Switch from SMTP to SendGrid, Twilio or Infobip without touching your business logic.

Visibility

Track every delivery

Capture delivery reports from providers and route them into your logs, alerts, or dashboards.

Get started in minutes

  1. Install Add Transmitly and one provider package (SMTP is the easiest start).
  2. Configure Set host, credentials, and defaults in one place.
  3. Define pipeline Map intent to channels/templates once.
  4. Dispatch Send by pipeline name and capture delivery reports.

Install Packages

dotnet add package Transmitly
dotnet add package Transmitly.ChannelProvider.Smtp

Configure & dispatch

using Transmitly;

ICommunicationsClient communicationsClient = new CommunicationsClientBuilder()
    .AddSmtpSupport(options =>
    {
        options.Host = "smtp.example.com";
        options.Port = 587;
        options.UserName = "MySMTPUsername";
        options.Password = "MyPassword";
    })
    .AddPipeline("WelcomeKit", pipeline =>
    {
        pipeline.AddEmail("welcome@my.app".AsIdentityAddress("Welcome Committee"), email =>
        {
            email.Subject.AddStringTemplate("Thanks for creating an account!");
            email.HtmlBody.AddStringTemplate("Check out the <a href=\"https://my.app/getting-started\">Getting Started</a> section to see all the cool things you can do!");
            email.TextBody.AddStringTemplate("Check out the Getting Started (https://my.app/getting-started) section to see all the cool things you can do!");
        });
    })
    .BuildClient();

// Optional (ASP.NET Core DI):
// var builder = WebApplication.CreateBuilder(args);
// builder.Services.AddSingleton<ICommunicationsClient>(communicationsClient);

var result = await communicationsClient.DispatchAsync("WelcomeKit", "newuser@example.com", new { });

Swap providers or adjust templates in one place—your app code stays clean. Learn how to change providers.

Samples to get ideas flowing

Full walkthrough

Kitchen Sink (ASP.NET Core API)

  • All channels + multiple providers
  • Delivery reports and restrictions
  • Fluid template examples
View sample

Distributed systems

Microservices

  • Remote + embedded templates
  • Persona filters and multi-tenant from-address logic
  • Cross-service delivery reporting
View sample

Local dev

Logger provider

  • No external provider required
  • Inspect payloads and routing behavior
  • Ideal for local debugging
View sample

Product checklist

Operational confidence

Ship with pipelines, delivery reports, and templates defined in one place.

Friendly for builders

Readable APIs, clear defaults, and examples to unblock your team fast.

Community powered

Open source roadmap, issues, and discussions in GitHub to shape what ships next.

Quick answers

Is Transmitly vendor-agnostic?

Yes. You can start with SMTP and switch to SendGrid, Twilio, Infobip, or Firebase without changing app-level dispatch code.

Which channels are supported?

Email, SMS, Voice, and Push are supported out of the box, and you can extend with custom channels/providers.

Can I use my own templates?

Yes. Use Fluid, Scriban, or your own template sources (embedded, remote, or custom).

Is the project open source?

Yep! Transmitly is distributed under the Apache 2.0 license. This permissive license is great for you because it allows for free use in commercial projects and doesn't force you to open-source your own proprietary code (no copyleft strings attached).

Drop Transmitly into your stack and keep building your app.

Open source .NET messaging with practical defaults and room to grow.