github jma1ice/newsletterr v2026.4.4
'Finding Jelly'

3 hours ago

New Features:

  • Standalone mode: run newsletterr with no media server at all, as a plain mailing list tool. Setup now asks which you want, and the media snap-ins stay out of the builder
  • Import recipient lists from a CSV or by pasting addresses, with names picked up alongside them. Accepts a header row or none, tabs or commas, and the "Name <address>" form mail clients produce
  • Every rejected row from an import is reported with its line number, and addresses that have unsubscribed cannot come back in through a file
  • Export any saved list as a CSV
  • Link Jellyfin users to email addresses. Jellyfin does not store them, so importing a list with names links what it can automatically, and Settings has a table to fill in or correct the rest
  • Once linked, per-user recommendations, per-user DroppedNeedle wrapped and personalized sends work on Jellyfin the same way they do on Plex
  • Default landing page after login
  • Calendar week can start on Sunday or Monday, in the scheduling calendar and in the Coming Soon calendar view
  • Date and time format settings (month/day/year, day/month/year or year/month/day, and 12 or 24 hour), applied everywhere a date is shown to a reader including sent emails
  • Skip-on-no-new now lets you pick which sections count as new content, across recently added, most watched, recently released, both Coming Soon snap-ins and both request snap-ins
  • Skip-on-no-new also takes a minimum item count, so a schedule can wait for a week worth mailing about rather than firing on a single item
  • Album art on the DroppedNeedle wrapped card, matched from the music database
  • Choose which DroppedNeedle lists appear (artists, tracks, albums, genres) and how many rows each one shows
  • Extra Year in Review highlights: popular movie, popular show, top platform, top library and peak streams
  • Year in Review can show the top 1, 3 or 5 of each highlight instead of just the winner
  • Emby support, untested. Jellyfin forked from Emby, so they speak nearly the same API and share one client here, but this was written against Emby's documentation rather than verified against a real server. Pick it in Settings under Media Server and use the Jellyfin fields for the URL and API key. Reports of what breaks are very welcome
  • Graphs on Jellyfin and Emby, via the Playback Reporting plugin. Jellywatch keeps no history over time, so graphs need that plugin installed on your server; it reuses the URL and API key you already entered. Offers Plays by Date, by Day, by Hour, by Top Users and by Top Platforms. The other Plex graphs have no equivalent in the plugin and are not offered, and if the plugin is missing the graph list simply stays empty
  • Most Watched now works on Jellyfin, via Jellywatch. Note it groups by media type (Movies, TV Shows, Music) rather than per library, because Jellywatch reports play counts by type; the counts are server-wide, which is what the section means on Plex
  • The inactive-recipient filter now works on Jellyfin too, using each account's last activity date. It still fails open everywhere: if the server cannot be asked, nobody is filtered out of a send
  • Personalization tokens: {{name}}, {{first_name}} and {{email}} in any text block or custom HTML, filled in per recipient from your saved contacts. A template using one sends individually rather than as one BCC message, and the builder says so while you write it
  • New scheduling option: skip the send when the email would come out empty. A catch-all next to the per-section triggers, for when every section returns nothing. Headers, footers and text blocks do not count as content, and a section showing "no items found" counts as empty rather than as content
  • Demo mode is now an actual demo: it runs on a sample library (recently added, stats, graphs, recommendations, wrapped, coming soon and requests, with placeholder artwork), the builder opens with a newsletter already assembled, and the live preview renders it for real. Appearance, UI theme, email theme, layout and density can all be switched on the Settings page and take effect immediately for that visitor without saving anything

Fixed:

  • The per-user DroppedNeedle wrapped card ignored the email layout, rendering the same plain lists under editorial, digest and spotlight instead of matching the rest of the email
  • Recommendations, collections and graphs also ignored the email layout, so a classic, editorial, digest or spotlight email had sections that did not match the rest of it. Every data section now follows the layout you picked
  • Jellyfin never loaded a user list, so recipients could not be pulled from the server and no per-user section had anyone to address
  • The wrapped card fell back to a numeric user id when there was no Tautulli user list to read a name from, which was every Jellyfin install
  • Demo mode showed a logout button that emptied the session and dropped the visitor into first-run setup, and the live preview came back empty because the render request was blocked as a write
  • The Most Watched snap-in ignored the Stats and Graphs metric setting: it always ranked and labelled by play count, even with Duration picked. It now ranks by time watched and labels cards with it. Tautulli reports no watch time in its per-library media list, so an all-time section on Duration is aggregated from that library's history, which covers its most recent 1000 plays
  • Demo mode's Most Watched section listed no libraries, because the sample data was built in the wrong shape for the snap-in

Don't miss a new newsletterr release

NewReleases is sending notifications on new releases.