Book a call
All work
WebMyMoney (internal team)

An internal email outbound platform with deliverability built in

WMM was running outbound across a patchwork of tools. We built one app the whole team uses. Domain purchase plus warmup, Claude-powered sequence creation, DNS / blacklist / warmup checks before every send, shared lead pool, role-based admin and user views, dashboards. End-to-end, in-house.

Next.jsSupabaseVercelClaudeOutbound EmailDeliverability

The problem

WMM's outbound was running on 4-5 disconnected tools. Domain purchase here, warmup there, sequences in a third, sending in a fourth. Deliverability checks: "we'll do it later." Leads scattered across spreadsheets. Every new hire walked through five logins and a list of tribal knowledge.

Outbound at this scale needs a single source of truth and a single deliverability contract. Anything else burns sending domains and onboarding time.

What I did

Built one internal app that hosts the whole team and the whole process.

  • Wizard onboarding. Account provisioned, domain purchased, warmup scheduled by the time the wizard finishes. Tribal knowledge replaced by a flow.
  • Role-based views. Admin = orchestration, settings, team, deliverability oversight. User = running campaigns. Permissions enforced server-side.
  • Dashboards. Volume, open / reply / bounce, deliverability health, warmup progress. One screen tells the team what's working and what's about to break.
  • Domain purchase + warmup built in end-to-end. Buy, configure DNS, kick off warmup, track state, without leaving the app.
  • Sequence builder. Scheduling, throttling, reply detection, suppression lists.
  • Shared lead-pool database. One source of truth across the team. No duplicate outreach.
  • AI-assisted sequence creation (Claude). Operator describes goal + audience; system drafts; operator edits and approves. Human in the loop.
  • Pre-flight deliverability checks. SPF / DKIM / DMARC validation, blacklist lookups across major RBLs, warmup-state verification. Send button gated behind a green check, not blind trust.

The detail that mattered: pre-flight deliverability is structural. If DNS, blacklist, or warmup-state check fails, the campaign is held and the operator gets a specific reason. Before: teams burn fresh domains by sending too much too soon. After: that mistake is structurally impossible.

Outcome

  • One app replaces five external tools. Lower cost, fewer logins.
  • Deliverability is part of the campaign flow, not a manual ritual.
  • New hires onboard in minutes.
  • Lead state is consistent across the team. No duplicate outreach.
  • Campaign quality up: AI-drafted sequences beat blank-page first drafts.