Email engineering platform

Email Innovation Hub

One platform to build, test and ship email campaigns, made for agencies that work across many clients and many martech platforms.

Nine AI agents Per-client access control Self-hosted Exports to any CMS

Built and running today.

The problem

Email development is fragmented.

Scattered tools

Every campaign runs through a separate editor, preview service, QA checker, ESP dashboard and approval thread.

Slow, repeated builds

Each campaign solves the same rendering and fallback problems again by hand. One round of changes can take days.

Knowledge that gets lost

A fix found on one client is invisible on the next. It lives in someone’s head rather than in the system.

For an agency serving many brands on different platforms, the cost of this grows with every new client.

The idea

One platform. Every stage.

From brief to inbox: write, preview, test, approve and export without leaving the platform.

Write
→
Preview
→
QA gate
→
Approve
→
Export

Every stage above works today.

The shift

From manual and fragmented to automated and compounding.

Without the HubWith the Hub
Templates assembled by hand for every campaignAssembled from tested, versioned, reusable components
Dark mode fixed per template, per clientDark mode handled once, in the design system
Manual cross-client QA, client by clientAutomated rendering checks in a single pass
AI used ad hoc, with no quality controlAI output that has to pass review gates
Knowledge trapped in developers’ headsKnowledge indexed, searchable and reused on every client
Approval via screenshot email chainsA client review portal with inline annotations
What it delivers

Faster builds, fewer surprises in the inbox.

Faster turnaround

AI writes the first draft. Tested components and automated QA shorten the rest of the build.

Rendering problems caught early

An automated QA gate catches rendering and dark mode issues before the client sees them.

New techniques with evidence

Rendering reports show exactly which email clients support a new technique, so the decision to use it rests on data.

More within budget

Reused components and AI-assisted drafts mean more campaigns inside the same retainer.

Consistent across markets

One set of tested components produces on-brand variants for every market and language.

No platform lock-in

Templates live in the Hub and export to any ESP, so a change of platform does not mean a rebuild.

In practice

How it plays out on four kinds of campaign.

Retail, peak season

Many seasonal variants across markets, built quickly from tested blocks with dark mode and Outlook fallbacks already in place, and copy localised for each market.

Financial services, compliance

Strict accessibility checks, brand rules per product line and a time-stamped approval trail for the regulator. Issues are caught before send.

Tech, standing out

Interactive email prototyped safely. A rendering report confirms where it works, and that everyone else sees a clean fallback.

Global FMCG, scale

Local teams in many markets, all building to the same quality bar.

The product

Built, running and in use today.

Email Innovation Hub agent workspace during a live build
Agent workspace, a campaign build in progress
The landscape

Every email tool now has AI. This one is built for a different customer.

Most tools

Built for an in-house brand team running one email programme on one platform, with AI added for writing copy.

The Hub

Built for an agency with many clients. What is learnt on one client carries to the next, and every template can go to any platform.

The difference is who it is built for.

Versus the field

Where the others stop.

PlatformBuilt forWhere it stops
StensulEnterprise marketers, brand governanceBuilt for marketers. It gives developers no build pipeline.
DyspatchModular building, design-to-componentTurns designs into components. It does not cover the rest of the development workflow.
KnakNo-code enterprise marketersNo-code by design, so it is built for marketers rather than developers.
StripoDrag-and-drop & HTML editingIts AI writes general content. It has no email-specific build tooling.
ParcelBrowser-based code editorA code editor. It has no build pipeline and nothing carries over between clients.
Where it is different

Advantages that grow over time.

Knowledge that compounds

Every fix, quirk and pattern found on one client is stored and reused on the next, so each campaign starts further ahead.

An asset the agency owns

Self-hosted, built on open-source foundations, with no per-seat fees and no vendor lock-in. It gains value with use instead of costing rent.

Built for agencies

Designed for many clients on many platforms, which is the one situation off-the-shelf tools were not made for.

Rendering reports as a deliverable

Clients get a structured report showing which email clients support each technique, rather than a line saying it was tested.

How it works

Agent hierarchy

Interactive diagram
flowchart TB
    ORCH["AI Orchestrator
Task routing · Agent chaining · Model selection"] subgraph BUILD["BUILD & STRUCTURE"] direction LR SCAF["Scaffolder"] OUTL["Outlook Fixer"] DARK["Dark Mode Agent"] end subgraph QUALITY["QUALITY & COMPLIANCE"] direction LR A11Y["Accessibility Auditor"] CODE["Code Reviewer"] end subgraph CONTENT["CONTENT & PERSONALISATION"] direction LR CONT["Content Agent"] PERS["Personalisation Agent"] end subgraph KNOWLEDGE["KNOWLEDGE & INNOVATION"] direction LR KNOW["Knowledge Agent"] INNO["Innovation Agent"] end ORCH --> BUILD ORCH --> QUALITY ORCH --> CONTENT ORCH --> KNOWLEDGE KNOW -->|context| ORCH style ORCH fill:#0391F2,stroke:#040E4B,color:#fff style BUILD fill:#040E4B,stroke:#6e87a8,color:#fff style QUALITY fill:#16213e,stroke:#6e87a8,color:#fff style CONTENT fill:#1a1a2e,stroke:#6e87a8,color:#fff style KNOWLEDGE fill:#040E4B,stroke:#533483,color:#fff
How it works

Memory architecture

Interactive diagram
flowchart TB
    USER["Developer
Sends Message"] --> CHAT["Chat Service
app/ai/service.py"] CHAT --> INTENT["Extract
Search Intent"] INTENT --> KB["Knowledge Base
app/knowledge/"] INTENT --> MEM["Memory Store
app/memory/"] KB --> CONTEXT["Build Agent
Context"] MEM --> CONTEXT CONTEXT --> LLM["LLM Provider
Local or Cloud"] LLM --> RESPONSE["Response with
Citations"] RESPONSE --> SAVE["Save to
Conversation"] RESPONSE --> LEARN["Extract
New Memories"] LEARN --> MEM SAVE --> CHAT subgraph DECAY["BACKGROUND JOBS"] D1["Temporal
Decay Job"] D2["Memory
Compaction"] D3["Cross-Agent
Propagation"] end MEM --> D1 D1 --> D2 D2 --> D3 D3 --> MEM style USER fill:#0391F2,stroke:#040E4B,color:#fff style CHAT fill:#040E4B,stroke:#0391F2,color:#fff style CONTEXT fill:#040E4B,stroke:#0391F2,color:#fff style LLM fill:#16213e,stroke:#6e87a8,color:#fff style KB fill:#040E4B,stroke:#533483,color:#fff style MEM fill:#533483,stroke:#0391F2,color:#fff style RESPONSE fill:#059669,stroke:#040E4B,color:#fff style DECAY fill:#1a1a2e,stroke:#533483,color:#fff
How it works

Developer workflow

Interactive diagram
flowchart LR
    subgraph START["1. START"]
        S1[Open Hub Dashboard]
        S2[Select / Create Project]
    end

    subgraph BUILD["2. BUILD"]
        B1[Choose Starting Point]
        B2[Import from Figma]
        B3[Select from Component Library]
        B4[Start from AI Scaffold]
        B5[Blank Template]
    end

    subgraph DEVELOP["3. DEVELOP"]
        D1[Code in Monaco Editor]
        D2["Live Preview
Desktop / Mobile / Dark Mode"] D3["AI Agents
Review / Fix / Optimise"] D4[Hot Reload on Save] end subgraph TEST["4. TEST"] T1["Run QA Pipeline
14-Check QA"] T2["Cross-Client Renders
20+ Clients"] T3["Accessibility Audit
WCAG AA"] T4["Fallback Verification
Outlook / Gmail / Apple"] end subgraph SHIP["5. SHIP"] X1{All Gates Pass?} X2[Select Target CMS] X3[Export via Connector] X4[Deployment History Logged] end S1 --> S2 S2 --> B1 B1 --> B2 B1 --> B3 B1 --> B4 B1 --> B5 B2 --> D1 B3 --> D1 B4 --> D1 B5 --> D1 D1 <--> D2 D1 <--> D3 D1 --> D4 D4 --> D2 D1 --> T1 T1 --> T2 T2 --> T3 T3 --> T4 T4 --> X1 X1 -->|Yes| X2 X1 -->|"No - Fix Issues"| D1 X2 --> X3 X3 --> X4 style START fill:#0d1b2a,stroke:#778da9,color:#fff style BUILD fill:#1b263b,stroke:#778da9,color:#fff style DEVELOP fill:#415a77,stroke:#e0e1dd,color:#fff style TEST fill:#1b263b,stroke:#778da9,color:#fff style SHIP fill:#0d1b2a,stroke:#778da9,color:#fff
How it works

Master innovation flow

Interactive diagram
flowchart TB
    subgraph IDEATION["IDEATION"]
        direction TB
        A1[Innovation Brief] --> A2[Select Innovation Track]
        A2 --> A3{Innovation Type?}
    end

    subgraph HUB["INNOVATION HUB"]
        direction TB
        B1["Design Sync
Import from Figma /
Design Tokens"] B2["Pipeline DAG + 9 Agents
Scaffolding / Review /
Content / Innovation / VLM"] B3["Email Engine
Maizzle Build Pipeline /
Dark Mode / AMP"] B4["Component Library
Version / Test /
Document"] B5["QA Engine
Cross-Client Render /
Accessibility / Fallback Gate"] end subgraph PRODUCTION["PRODUCTION"] direction TB C1["Braze
Content Blocks + Liquid"] C2["Salesforce MC
Content Builder + AMPscript"] C3["Adobe Campaign
Fragments + Delivery"] C4["Taxi for Email
Design System + Syntax"] C5["Raw HTML
CDN / GitHub / Download"] end A3 -->|Component| B4 A3 -->|Template| B1 A3 -->|Technique| B3 A3 -->|Pattern| B2 B1 --> B2 B2 --> B3 B3 --> B4 B4 --> B5 subgraph MEASURE["RENDERING & QUALITY INTELLIGENCE"] direction TB D1["Client Support Matrices
Which clients support
which innovations"] D2["Rendering Quality Scores
Per template, per client
visual regression tracking"] D3["Template Performance
File size / code quality /
accessibility scores"] D4["Feed Back into Hub
Knowledge Base +
QA prioritisation"] end B5 -->|Pass All Gates| C1 B5 -->|Pass All Gates| C2 B5 -->|Pass All Gates| C3 B5 -->|Pass All Gates| C4 B5 -->|Pass All Gates| C5 B5 --> D1 D1 --> D2 D2 --> D3 D3 --> D4 D4 --> B4 style IDEATION fill:#1a1a2e,stroke:#e94560,color:#fff style HUB fill:#0f3460,stroke:#e94560,color:#fff style PRODUCTION fill:#16213e,stroke:#e94560,color:#fff style MEASURE fill:#1a1a2e,stroke:#533483,color:#fff
How it works

Compound innovation effect

Interactive diagram
flowchart LR
    DM["Dark Mode
Design System"] -->|colour tokens| CL["Component
Library"] CL -->|tested components| AMP["AMP
Prototyping"] AMP -->|fallback patterns| QA["Cross-Client
Testing"] QA -->|rendering data| PB["Performance
Benchmarking"] AI["AI-Assisted
Coding"] -->|scaffolds| CL AI -->|generates| DM AI -->|reviews| A11Y["Accessibility
Compliance"] AI -->|copy| CONT["Content
Agent"] AI -->|explores| INNO["Innovation
Agent"] CONT -->|subject lines| CL CONT -->|alt text| A11Y INNO -->|prototypes| CSS INNO -->|techniques| CL INNO -->|feasibility| QA A11Y -->|compliant patterns| CL CSS["Interactive
CSS"] -->|techniques| CL CSS -->|support matrix| QA BIMI["BIMI &
Auth Audit"] -->|trust signals| PB LIQ["Braze Liquid
Patterns"] -->|personalisation| CL CL -->|universal library| EXPORT["Export to
Any CMS"] style DM fill:#e94560,stroke:#1a1a2e,color:#fff style CL fill:#0f3460,stroke:#e94560,color:#fff style AMP fill:#533483,stroke:#e94560,color:#fff style QA fill:#16213e,stroke:#533483,color:#fff style PB fill:#1a1a2e,stroke:#533483,color:#fff style AI fill:#e94560,stroke:#1a1a2e,color:#fff style CONT fill:#e94560,stroke:#1a1a2e,color:#fff style INNO fill:#e94560,stroke:#1a1a2e,color:#fff style A11Y fill:#533483,stroke:#e94560,color:#fff style CSS fill:#16213e,stroke:#533483,color:#fff style BIMI fill:#1a1a2e,stroke:#533483,color:#fff style LIQ fill:#0f3460,stroke:#e94560,color:#fff style EXPORT fill:#e94560,stroke:#fff,color:#fff
The opportunity

From cost centre to revenue lever.

Clients stop asking “can you build this?” and start asking “what should we build next?” Alongside the emails, the agency delivers what it has learnt about each client’s audiences and platforms. That knowledge, rather than the tooling, is what makes the relationship hard to replace.

The Email Innovation Hub is built, running and ready to demo. If email at agency scale is a problem you are working on, I’d like to show it to you and talk through whether it fits, or whether it’s not a fit. The architecture is a longer conversation, and I am glad to book that separately.

hello@saulera.com

Agent hierarchy

Click any node or group for details. Drag to pan, and zoom with the controls or the scroll wheel.

Memory architecture

Click any node or group for details. Drag to pan, and zoom with the controls or the scroll wheel.

Developer workflow

Click any node or group for details. Drag to pan, and zoom with the controls or the scroll wheel.

Master innovation flow

Click any node or group for details. Drag to pan, and zoom with the controls or the scroll wheel.

Compound innovation effect

Click any node or group for details. Drag to pan, and zoom with the controls or the scroll wheel.