ULTRATHINK

Newsletter Email Setup Guide

This site includes an email newsletter signup form that sends notifications when new blog posts are published.

  1. Sign up for Buttondown: Go to https://buttondown.email and create a free account
    • Free tier includes: 1,000 subscribers, unlimited emails
  2. Get your username: After signing up, your username will be in your account URL (e.g., buttondown.email/yourusername)

  3. Update the form: Edit _includes/newsletter.html and replace YOUR_BUTTONDOWN_USERNAME with 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')"
  4. Set up RSS-to-Email:
    • In Buttondown dashboard, go to Settings → RSS
    • Add your RSS feed URL: https://huntercolson.dev/feed.xml (or https://huntercolson1.github.io/ultrathink/feed.xml for 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:

  1. Sign up at https://mailchimp.com
  2. Create an audience/list
  3. Get your form action URL from Mailchimp’s embed code
  4. Replace the form in _includes/newsletter.html with Mailchimp’s form code
  5. 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:

Testing

After setup:

  1. Test the signup form on your homepage
  2. Publish a test blog post
  3. Verify subscribers receive the email notification

Current Implementation

The newsletter signup form is displayed on:

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>