Newsletter Email Setup Guide
This site includes an email newsletter signup form that sends notifications when new blog posts are published.
Quick Setup with Buttondown (Recommended)
- Sign up for Buttondown: Go to https://buttondown.email and create a free account
- Free tier includes: 1,000 subscribers, unlimited emails
-
Get your username: After signing up, your username will be in your account URL (e.g.,
buttondown.email/yourusername) - Update the form: Edit
_includes/newsletter.htmland replaceYOUR_BUTTONDOWN_USERNAMEwith your actual Buttondown username in two places:- Line 8:
action="https://buttondown.email/api/emails/embed-subscribe/YOUR_BUTTONDOWN_USERNAME" - Line 11:
onsubmit="window.open('https://buttondown.email/YOUR_BUTTONDOWN_USERNAME', 'popupwindow')"
- Line 8:
- Set up RSS-to-Email:
- In Buttondown dashboard, go to Settings → RSS
- Add your RSS feed URL:
https://huntercolson.dev/feed.xml(orhttps://huntercolson1.github.io/ultrathink/feed.xmlfor GitHub Pages) - Configure email frequency (immediate, daily digest, weekly digest)
- Buttondown will automatically check your RSS feed and send emails when new posts are published
Alternative: Mailchimp
If you prefer Mailchimp:
- Sign up at https://mailchimp.com
- Create an audience/list
- Get your form action URL from Mailchimp’s embed code
- Replace the form in
_includes/newsletter.htmlwith Mailchimp’s form code - Use Mailchimp’s RSS-to-Email feature or Zapier to connect your RSS feed
Alternative: GitHub Actions (Advanced)
You can set up a GitHub Action that:
- Monitors your RSS feed
- Sends emails via SendGrid, Mailgun, or similar service
- Requires API keys and more setup
Testing
After setup:
- Test the signup form on your homepage
- Publish a test blog post
- Verify subscribers receive the email notification
Current Implementation
The newsletter signup form is displayed on:
- Homepage (
index.html) - after the hero section
You can add it to other pages by including:
<!-- Newsletter Signup Component -->
<div class="newsletter-signup">
<div class="newsletter-signup__content">
<h3 class="newsletter-signup__title">Get notified of new posts</h3>
<p class="newsletter-signup__description">Subscribe to get an email when I publish a new blog post.</p>
<form
class="newsletter-signup__form"
action="https://buttondown.email/api/emails/embed-subscribe/YOUR_BUTTONDOWN_USERNAME"
method="post"
target="popupwindow"
onsubmit="window.open('https://buttondown.email/YOUR_BUTTONDOWN_USERNAME', 'popupwindow')"
>
<label for="newsletter-email" class="u-sr-only">Email address</label>
<input
type="email"
id="newsletter-email"
name="email"
class="newsletter-signup__input"
placeholder="your@email.com"
required
aria-label="Email address"
/>
<input type="hidden" value="1" name="embed"/>
<button type="submit" class="c-btn c-btn--solid newsletter-signup__button">Subscribe</button>
</form>
<p class="newsletter-signup__privacy">No spam. Unsubscribe anytime.</p>
</div>
</div>