Email Notifications for Subscribers

How we built email notifications for Book Reviews and Blog subscribers using Gmail and Python

The Problem

Our book review site has 26+ detailed book reviews with audio narration, but readers had no way to know when new reviews were published. Same for the blogโ€”visitors would have to manually check for new content.

The Solution

We leveraged the GOG (Google Workspace CLI) tool that was already configured. This means:

๐Ÿ“Š Current Stats

Active subscribers receiving notifications for both book reviews and blog posts. Confirmation emails sent automatically.

Architecture Overview

Subscriber Form โ†’ Python Backend โ†’ GOG Gmail CLI โ†’ Subscriber Inbox
                    โ†“
            JSON Storage (subscribers.json)
                    โ†“
            Telegram Alert to Admin

Key Components

1. Subscriber Storage

We store subscribers in a simple JSON file:

{
  "email": "subscriber@example.com",
  "content_type": "book",
  "subscribed_at": "2026-04-15T12:00:00Z"
}

2. Confirmation Emails

When someone subscribes, they receive a welcome email that includes:

3. Admin Notifications

Telegram alert when someone new subscribes:

4. Sending New Content Notifications

When publishing a new review or article, run:

# Book reviews
python3 notify_subscribers.py \
  --title "Bitcoin Standard" \
  --author "Saifedean Ammous" \
  --id "bitcoin-standard" \
  --description "Analysis..."

# Blog posts
python3 notify_blog_subscribers.py \
  --title "New Tutorial" \
  --id "article-slug" \
  --description "Summary..."

5. Rate Limiting & Security

Unsubscribe Handling

Every notification email includes an unsubscribe optionโ€”subscribers can reply with "unsubscribe" or click a link.

๐Ÿ“ฌ Stay Updated

Get notified when new book reviews or blog posts are published.

๐Ÿ“š Book Reviews ยท ๐Ÿ“ Blog

Technical Stack

This system was built in an afternoon and handles everything without third-party email marketing services or monthly fees.

๐Ÿ’ฌ Comments

Email is required for anti-spam but can be fake if you prefer privacy.

Loading comments...