For Publishers · Newsletter Platforms · Media

Issues that don’t die in promo

Beautiful HTML. Brutal inbox competition. Open rates that slide every year. Blasts gives newsletter products a second, consent-based delivery surface — Screen Blasts into an inbox readers opted into. Partner API from your send pipeline; keep email as you like.

The inbox tax on every send

Promo
even opted-in lists fight Gmail tabs, filters, and “Primary” fatigue
ESP $
you already pay to send — still no guarantee the issue is seen
API
your platform already builds the HTML — Blasts is another opt-in hop

Built for newsletter workflows

📰

Issue drop / campaigns

Fire a campaign when you hit Publish — same HTML you already generate, merge tags for first name / plan tier.

Breaking / special editions

Time-sensitive sends that shouldn’t wait in a crowded promo tab — batch enrolled readers fast.

🔁

Renewal & paywall nudges

Membership expiry, trial ending, unpaid invoice — transactional Screen Blasts with clear CTAs.

📎

Attachments & extras

PDFs, charts, sponsor one-sheets — attach via API, stamp into the blast (up to 5).

📡

Read / delivered webhooks

Know who got it and who opened in the Screen Blast inbox — Stripe-style HMAC to your endpoint.

🔗

Enroll at subscribe

Hosted blasts.dev/enroll/… next to “Subscribe,” or server-side confirm when they’re logged into your reader account.

Honest framing: this is opt-in Screen Blast delivery — not a claim that email will never hit promo, and not a drop-in replacement for your ESP’s compliance / CAN-SPAM tooling. Keep email for the big list; offer Blasts as a premium / power-reader channel after explicit enroll. Native Blasts newsletter privacy features (zero-identifier subs) are a separate product path — this page is the Partner API lane.

Rich HTML issue example

What a morning digest can look like in the Screen Blast inbox — plus a campaign API call

Live Preview — Screen Blast Inbox
API Call — Campaign Send
# Publish morning brief to enrolled readers
curl -X POST "https://api.blasts.app/api/v1/partner/campaigns" \
  -H "Authorization: Bearer $API_KEY" \
  -H "X-Blasts-Timestamp: $(date +%s000)" \
  -H "X-Blasts-Signature: sha256=..." \
  -H "Content-Type: application/json" \
  -d '{
  "campaign_name": "signal_daily_412",
  "body_html": "<div style=\"font-family:Georgia,serif\">
    <div style=\"background:#e11d48;color:#fff;padding:20px;text-align:center\">
      <h1>Signal Daily #412</h1>
    </div>
    <div style=\"padding:20px\">
      <p>Hi {{first_name}} — three things that mattered overnight.</p>
      <a href=\"{{issue_url}}\">Read full issue →</a>
    </div>
  </div>",
  "body_plain": "Signal Daily #412 — Hi {{first_name}}. Read: {{issue_url}}",
  "recipients": [
    {
      "to_email": "reader@example.com",
      "merge": {
        "first_name": "Alex",
        "issue_url": "https://signal.example/i/412"
      }
    }
  ]
}'

Why Blasts fits beside your ESP

Email ESP App push Blasts
Reach at scale ✓ Big lists ✗ App install required ✓ Enrolled readers
Seen when published ✗ Promo / clutter ✓ If enabled ✓ Screen Blast inbox
Full HTML issue ✗ Short ✓ HTML + attachments
Consent model List / double opt-in OS permission ✓ Explicit enroll
Platform integration ✓ Native ✓ FCM / APNs ✓ Partner API + HMAC

Wire it in under a week

1. Sandbox key

Ask for pk_test_* (0 credit debit, 100 sends/UTC-day). AL@SavingsSites.com.

2. Enroll at subscribe

Offer “also get issues in Screen Blasts” with hosted enroll, or confirm server-side for logged-in readers.

3. Hook Publish

On issue publish, POST campaign / batch to https://api.blasts.app/api/v1/partner/….

4. Webhooks

Listen for delivered / read. Keep ESP for the full list and compliance tooling.

More newsletter examples

Renewal nudge — single send

# Membership expires in 3 days
curl -X POST "https://api.blasts.app/api/v1/partner/messages/send" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to_email": "reader@example.com",
  "body_html": "<div style=\"font-family:sans-serif;padding:20px\"><h2>Your Pro plan renews soon</h2><p>Hi {{first_name}}, renew by <strong>{{date}}</strong> to keep archives + morning brief.</p></div>",
  "body_plain": "Renewal: Hi {{first_name}}, Pro renews {{date}}.",
  "metadata": { "event": "renewal_nudge" }
}'

Breaking edition — batch

# Flash issue to enrolled Pro readers
curl -X POST "https://api.blasts.app/api/v1/partner/messages/batch" \
  -d '{
  "batch_name": "flash_fed_0721",
  "body_html": "<div style=\"font-family:sans-serif;padding:20px\"><h2>Flash: markets reacting</h2><p>{{headline}} — <a href=\"{{url}}\">read now</a></p></div>",
  "body_plain": "Flash: {{headline}} — {{url}}",
  "recipients": [
    { "to_email": "pro1@example.com", "merge": { "headline": "Surprise rate hold", "url": "https://signal.example/flash/1" } }
  ]
}'

Give power readers a channel outside the promo tab

Free sandbox key · Partner API · same contracts as production.