ProdMedia

Owned mail, newsletter and CRM sync infrastructure

A private communication platform for AIRBORN: reliable mail delivery, newsletter campaigns, HubSpot contact sync and team webmail running on a self-hosted k3s stack.

Deployment path

  1. 1

    Baseline & DNS audit

    Snapshot of OVH records, mail flow mapped, deliverability measured before anything moved.

  2. 2

    Stalwart on k3s

    SMTP/IMAP on a single node with PostgreSQL storage, TLS from Caddy, backups from day one.

  3. 3

    Authentication

    SPF, DKIM, DMARC and MTA-STS configured and verified — mail-tester went to 10/10.

  4. 4

    Campaigns & webmail

    Listmonk for newsletters, Roundcube for the team, FreeScout as the helpdesk — one namespace.

  5. 5

    Automation

    A CronJob syncs HubSpot contacts every two hours; the OVH updater rewrites DNS after IP changes.

  6. 6

    SMS gateway

    A SerwerSMS-powered module: campaigns by Listmonk segments, STOP handled automatically, delivery reports and balance alerts.

  7. 7

    Jobs connector

    Airborn Jobs plugged in over a signed HTTPS contract — idempotent sends, delivery statuses and inbound replies without another vendor panel.

  8. 8

    Telephony — Play VPBX

    Call history, click-to-call from the client card, missed-call callbacks and live call events — four stages shipped in two days.

  9. 9

    One client card

    HubSpot ⋈ Listmonk grew to 17,700 contacts on a single CRM card: every e-mail, SMS, call and support thread in one timeline.

  10. 10

    Handover & managed operations

    Docs, runbooks and training for the team; since October 2026 the GitOps canon, Argo CD and monitoring run by ProdMedia — changes ship as commits, alerts watch every channel.

Proof, not promises

Mail · SMS · voice on one stack
Mail · SMS · voice on one stack
CRM: 17,700 contacts, single timeline
CRM: 17,700 contacts, single timeline
SPF · DKIM · DMARC · MTA-STS enforced
SPF · DKIM · DMARC · MTA-STS enforced
GitOps pipeline: commit → Argo CD → k3s
GitOps pipeline: commit → Argo CD → k3s
kubectl get pods — one namespace
kubectl get pods — one namespace
The client
The client