Add newsletter / email capture signup #17

Closed
opened 2026-06-09 18:33:44 +00:00 by glow · 1 comment
Owner

No way for returning readers to stay connected. No email signup, no newsletter CTA.

Suggested placement:

  • In-article CTA between content and related articles
  • Footer signup form
  • Optional popup/exit-intent

Tools: ConvertKit, Mailchimp, Buttondown, or self-hosted Listmonk.

No way for returning readers to stay connected. No email signup, no newsletter CTA. Suggested placement: - In-article CTA between content and related articles - Footer signup form - Optional popup/exit-intent Tools: ConvertKit, Mailchimp, Buttondown, or self-hosted Listmonk.
glow closed this issue 2026-06-09 20:05:41 +00:00
Author
Owner

Implemented newsletter signup in commit 08f00b5.

  • site/src/components/newsletter-signup.tsx — Qwik component with Buttondown API integration, honeypot, success/error states
  • site/.env.example — added PUBLIC_BUTTONDOWN_TOKEN
  • site/src/routes/layout.tsx — newsletter in footer (compact variant)
  • site/src/routes/articles/[slug]/index.tsx — in-article CTA (default variant)
  • Graceful degradation when env var not set
  • Build verified: tsc, eslint, vite client+SSR all clean

Closes #17

Implemented newsletter signup in commit 08f00b5. - `site/src/components/newsletter-signup.tsx` — Qwik component with Buttondown API integration, honeypot, success/error states - `site/.env.example` — added `PUBLIC_BUTTONDOWN_TOKEN` - `site/src/routes/layout.tsx` — newsletter in footer (compact variant) - `site/src/routes/articles/[slug]/index.tsx` — in-article CTA (default variant) - Graceful degradation when env var not set - Build verified: tsc, eslint, vite client+SSR all clean Closes #17
Sign in to join this conversation.
No labels
bug
feature
improvement
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
glow/first-home-diy#17
No description provided.