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
- 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
Usermodel
Missive is in early development: composing and sending messages is still being built. See What's Missive? for its goals and non-goals.
- Rails 8.0 or higher
- A Postmark account with API credentials
bundle add missive
bin/rails generate missive:install
bin/rails db:migrateMount 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.
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.
The documentation site lives in docs/ and is built with VitePress:
npm install
npm run docs:devThe gem is available as open source under the terms of the MIT License.
Everyone interacting in the Missive project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.