Skip to content

Repository files navigation

Missive

A lightweight Rails toolkit for building newsletter features. Missive provides the primitives for managing newsletters and subscribers, with Postmark handling delivery.

📖 Documentation: missive.etamin.studio

Features

  • Newsletter management: create and organize newsletters within your Rails application
  • Postmark integration: send through the Postmark API, track deliveries, opens and suppressions with webhooks
  • Rails native: a mountable engine with plain Active Record models
  • Subscriber management: handle your newsletter subscriber lists, optionally connected to your User model

Missive is in early development: composing and sending messages is still being built. See What's Missive? for its goals and non-goals.

Requirements

  • Rails 8.0 or higher
  • A Postmark account with API credentials

Installation

bundle add missive
bin/rails generate missive:install
bin/rails db:migrate

Mount the engine to receive Postmark webhooks:

# config/routes.rb
mount Missive::Engine => "/missive"

Then configure your credentials and webhooks. See Getting started for the full setup.

Quick start

class User < ApplicationRecord
  include Missive::User
end

sender = User.find_by(email: "editor@example.com").init_sender(name: "The Editor")
list = Missive::List.create!(name: "My newsletter", sender:)

user = User.first
user.init_subscriber
user.missive_subscriber.subscriptions.create!(list:)

Read the guides and the reference manual for more.

Documentation

The documentation site lives in docs/ and is built with VitePress:

npm install
npm run docs:dev

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Missive project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

About

Toolbox for managing newsletters in Rails, sending them with Postmark.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages