Newsletter delivery setup.

Gmail SMTP can send messages, but it must be used from a server-side endpoint.

Important: GitHub Pages is static

The IndieFounder site is hosted as a static Jekyll site on GitHub Pages. It cannot run a server-side SMTP client. Never put a Gmail password or Gmail app password in browser JavaScript, HTML, Jekyll front matter, or any public repository file.

A working subscription flow needs a small server-side endpoint that:

  1. Validates and rate-limits the submitted email address.
  2. Sends a subscription request to the site owner’s inbox through Gmail SMTP.
  3. Uses a double-opt-in confirmation before adding someone to a mailing list.
  4. Stores confirmed subscriptions in a durable, access-controlled place and supports unsubscribe requests.
  5. Keeps SMTP_USER, SMTP_APP_PASSWORD, and other secrets in the hosting provider’s secret manager.

Gmail SMTP settings

  • Host: smtp.gmail.com
  • Port: 587 with STARTTLS (or port 465 with TLS)
  • Username: your full Gmail address
  • Password: a Google App Password, only when 2-Step Verification is enabled and App Passwords are available for the account. Do not use your regular Gmail password.
  • Sender address: normally the authenticated Gmail address.

The server endpoint must be hosted separately from GitHub Pages. A static page cannot securely deliver the subscription form directly to Gmail SMTP, and a browser-only form cannot safely maintain a subscriber list.

Current site behavior

The newsletter form should remain disabled until a real server endpoint is configured. This avoids showing a false success message or collecting email addresses without a working, privacy-conscious subscription process. Configure the endpoint URL only after the backend has been deployed and tested.