WP Listmonk Publisher self-updates
A WordPress plugin that automatically creates and sends a listmonk campaign when a new post is published, including the featured image, title, opening excerpt, and a read-more link.
by Andrei Barburas · github.com/andreibarburas/listmonk-publisher · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/andreibarburas/listmonk-publisher/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
A WordPress plugin that automatically creates and sends a listmonk campaign whenever a new post is published. Each campaign includes the featured image, post title, opening excerpt, and a read-more link back to your site.
Features
- Automatically fires on post publish — no manual steps
- Sends via your self-hosted listmonk instance using the API
- Configurable send mode: immediate or draft (review before sending)
- Supports listmonk templates, custom from address, and multiple subscriber lists
- Category filter: restrict newsletter triggers to one or more specific categories
- Built-in test email flow: send a real campaign to a private test list before going live
- Activity log in the settings page for easy debugging
- Automatic updates via GitHub Releases
Requirements
- WordPress 6.0 or later
- PHP 8.0 or later
- A running listmonk instance with API access
Installation
- Go to the Releases page and download the latest
.zipfile. - In your WordPress admin, go to Plugins → Add New → Upload Plugin.
- Upload the zip and click Install Now, then Activate.
- Go to Settings → Listmonk Publisher to configure the plugin.
After the first install, updates will appear automatically in your WordPress dashboard.
Configuration
Go to Settings → Listmonk Publisher and fill in:
- Server URL — your listmonk instance URL, e.g.
https://listmonk.yoursite.com - API username and API token — create an API user under Admin → Users in listmonk
- List ID(s) — comma-separated IDs of the subscriber lists to send to
- Template ID — optional; the ID of a listmonk template to wrap the content
- From email — optional; leave blank to use listmonk's default sender
- Send mode — immediate (sends right away) or draft (creates the campaign for manual review)
Click Test connection to verify your credentials before enabling.
Test emails
Set a Test list ID pointing to a private listmonk list with only yourself as a subscriber. Click Send test email to send a real campaign using your most recently published post — same template, same pipeline as a live send.
Notes on listmonk display names
Listmonk rejects display names in the From email field that contain dots. Use a plain word before the <, e.g. Newsletter <hello@yoursite.com> rather than my.newsletter <hello@yoursite.com>.
Changelog
1.1.0
- Added category filter in Campaign Settings — select one or more categories to restrict which posts trigger a newsletter. Leave all unchecked to send for every category (previous behaviour).
1.0.0
- Initial release
About Author
Hi, I'm Andrei Barburas. By day, I work at the intersection of information management, intelligence gathering, and human cyber risk; designing systems that make sense of complexity and surface what usually stays unseen, drawing on a background in counter-terrorism research and the behavioral patterns behind radicalization and digital vulnerability. I also lecture in Ethics, Communication Management, and Cross-Cultural Management, and write and teach courses on psychology, culture, and critical thinking.
This corner of GitHub is the other side of that same instinct. I build a small collection of free, open-source tools for people who self-host: a suite of Android Apps designed around Nextcloud and selfhosters, along with Home Assistant Apps and a handful of Wordpress Plugins.
I started making these because I wanted something the existing options didn't offer; small, focused tools that fit my own self-hosted setup instead of forcing me to compromise. No ads, no tracking, GPLv3 licensed where applicable, and built to work with the tools people already run at home.
AI Usage
I'm open about the fact that I use AI throughout development. It genuinely helps me move faster and build things I wouldn't otherwise have time for as one person. But AI doesn't replace the actual work; I still spend the evenings figuring out what something should actually do, testing it against real setups and edge cases, and tracking down the inevitable weird bugs. AI is a tool I use, not a shortcut around the thinking.
Support
If my work saves you time, a small tip means a lot:
- ⭐ Donate via Bunq (my bank): bunq.me/barburasdonations
- 🐈⬛ GitHub Sponsors: github.com/sponsors/andreibarburas
- ☕ Buy me a coffee: buymeacoffee.com/barburas
- 🌐 Website: barburas.com
- 🐛 Issues & feature requests: open an issue
Links
Other work on Github
License
All my work is licensed under the GNU General Public License v3.0.
You are free to use, study, modify, and redistribute this software, provided that any distributed modifications are also licensed under GPL v3 and the source code remains available.