Releases: maquina-app/maquina_newsletters
v1.5.1 — Full-height compose editor + rendered table/heading styles
Changes since v1.5.0
- Full-height compose form with a fill-and-scroll editor — the New/Edit pages now grow to the full viewport height; the body editor fills the remaining space and scrolls its content internally (both Trix and Lexxy) instead of growing the page, with a min-height floor for short viewports.
- Rendered email preview/body styling — restored table borders (stripped by Tailwind preflight) and added an h1–h6 heading scale in
.newsletter-prose(show-page preview) and the mailer body, so the preview matches the delivered email. - Docs: added and compressed CLAUDE.md engine gotchas.
No API changes — drop-in patch upgrade from 1.5.0.
v1.5.0 — Pluggable editor (Trix or Lexxy)
Maquina Newsletters 1.5.0 — a pluggable rich-text editor.
The Action Text body editor is now your choice. The engine stays editor-agnostic and ships scoped CSS + guarded stylesheet links for both editors; the host selects with config.action_text.editor (Rails 8.1+).
- Trix — the editor used by v1.0. Nothing extra to install.
- Lexxy — Basecamp's Lexical-based editor, the v1.5 default, demonstrated by the dummy app. Markdown shortcuts, tables, code highlighting, real
<p>semantics, and Active Storage direct uploads.
Both editors store the same canonical Action Text HTML, so existing newsletters render unchanged when you switch — no data migration.
Use Lexxy in your host app
# Gemfile
gem "lexxy"# config/importmap.rb
pin "lexxy", to: "lexxy.js"
pin "@rails/activestorage", to: "activestorage.esm.js"// app/javascript/application.js
import * as ActiveStorage from "@rails/activestorage"
import "lexxy"
ActiveStorage.start()<%# layout — load AFTER your CSS build so Lexxy's styles win %>
<%= stylesheet_link_tag "lexxy" %>Installing the gem already sets config.action_text.editor = :lexxy on Rails 8.1; set :trix to keep Trix. Want to stay on Trix? Pin ~> 1.0.
Install
gem "maquina_newsletters", "~> 1.5"Requires Rails ≥ 8.0 and Ruby ≥ 3.2.
Full changelog: v1.0.0...v1.5.0
v1.0.0
Maquina Newsletters 1.0.0 — the first stable release.
A mountable Rails 8 engine that gives a host app a complete newsletter workflow — drafting, approval, scheduling, and batched sending — with no new infrastructure. Mounted at /backstage/newsletters.
Highlights
- Editorial state machine — every issue moves through draft → approved → scheduled → sending → sent (plus failed), with resourceful, Turbo-morph-friendly state transitions.
- One-decision scheduling — pick a date, a time (8am–8pm/30-min slots), and a batch size at the approval step; past times roll forward to the next slot.
- Batched delivery on plain ActiveJob — send all at once or drip in day-apart batches; adapter-agnostic (Solid Queue, Sidekiq, …).
- Action Text / Trix bodies with Active Storage images — images render at the right size in the editor, the inline preview, and the delivered email (attachment URLs resolve against the host's routes).
- Test sends — deliver a single issue to an arbitrary address before committing to the list.
- Host-delegated auth (mission_control-jobs pattern) and host-provided theming via
maquina_components— no vendored theme, no bundled auth. - Fully internationalized UI — all strings live in
config/locales.
Install
gem "maquina_newsletters", "~> 1.0"Then mount it and run the migrations. Requires Rails ≥ 8.0 and Ruby ≥ 3.2.
Read more on maquina.app.