Skip to content

Releases: maquina-app/maquina_newsletters

v1.5.1 — Full-height compose editor + rendered table/heading styles

16 Jun 19:56
fa7323c

Choose a tag to compare

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)

13 Jun 21:58

Choose a tag to compare

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

13 Jun 20:53

Choose a tag to compare

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.