Skip to content

Subscription module overview

Subscription system currently holds a single responsibility: Newsletters.

Newsletters

We have two newsletters:

  1. UX Weekly: Manually crafted and sent every Tuesday.
  2. Daily Design Quote: Automatically crafted and sent every weekday.

Technical description

We use three models:

Subscription states

Subscription requires email confirmation. Also, there is a special flow to resubscribe unsubscribed email back again.

DB Schema

subscription_system

Newsletters based approach

  1. A ContactList can be anything: For example, each Newsletter is a contact list.
  2. A Subscriber is a recipient for/subscriber to a specific ContactList.
  3. A Newsletter is for UX Weekly; a marketing staff creates one every week to send to all Subscribers subscribed to ContactList::NEWSLETTER_LIST_ID.