Features
Newsletter Signup
Email newsletter subscription system for visitor conversion
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:
| Variant | Used On | Layout |
|---|---|---|
full | Homepage | Two-column: form + preview sidebar |
compact | Blog posts | Inline 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 subscription200 { ok: true, message: "Already subscribed" }— duplicate400 { ok: false, error: "Valid email required" }— validation failure500 { 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
- Homepage — Full variant after the “What brings you here?” funnel CTA section
- Blog posts (
/posts/[slug]) — Compact variant before “Back to Blog” navigation - 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)