Skip to main content
Features

Newsletter Signup

Email newsletter subscription system for visitor conversion

March 8, 2026

Newsletter Signup

The newsletter system captures visitor emails across the site for a weekly infrastructure digest.

Architecture

Component: NewsletterSignup.astro

Reusable Astro component with two variants:

VariantUsed OnLayout
fullHomepageTwo-column: form + preview sidebar
compactBlog postsInline bar with form

Props:

  • variant'full' or 'compact' (default: 'full')
  • source — tracking string for where the signup originated (default: 'website')

API: /api/newsletter/subscribe

Method: POST

Request body:

{
  "email": "[email protected]",
  "source": "homepage"
}

Responses:

  • 200 { ok: true, message: "Subscribed" } — new subscription
  • 200 { ok: true, message: "Already subscribed" } — duplicate
  • 400 { ok: false, error: "Valid email required" } — validation failure
  • 500 { ok: false, error: "Server error" } — unexpected error

Storage

Emails are stored in Cloudflare KV (ARGOBOX_CACHE namespace) with key format:

newsletter:{email}

Value is a JSON object:

{
  "email": "[email protected]",
  "subscribedAt": "2026-03-08T16:00:00.000Z",
  "source": "homepage"
}

Placement

  1. Homepage — Full variant after the “What brings you here?” funnel CTA section
  2. Blog posts (/posts/[slug]) — Compact variant before “Back to Blog” navigation
  3. Blog layout (BlogPost.astro) — Compact variant after post content

Future Enhancements

  • Connect to Resend or existing email system for actual newsletter delivery
  • Dynamic “Recent Editions” sidebar from actual sent newsletters
  • Plausible Analytics custom events for tracking conversion rates
  • Admin dashboard for viewing/managing subscribers (query KV by prefix)