Why Nextlist ?


This project started in 2023 when my cloud server left security support and I had to decide whether to migrate services or abandon hosting these. A service I’ve maintained for family and community groups for years is hosting email lists. These are one of the older forms of social network. You join a list, or are added to one because you said you wanted to know more about its topic, it has a content policy, members communicate by sending to the list address which reflects to all members. Some lists are just used by listowners to send messages to a group. Some lists are private, some public, in the sense members of the public can confirm an email address by having a code sent by list software which they send back to join the list.


After owning a UK academic community list (econ-lets) I started hosting on a program called Majordomo on a home computer to run other lists which modem dialled a network connection 4 times a day in the early nineties. When I migrated to operating my own hosted virtual machine (cloud server) I installed GNU Mailman to do the job. Why not continue with that ? It’s generally not a good idea to reinvent the wheel. But with my long history of hosting email lists, I was reluctant to give up list hosting.


To continue with Mailman on my new server would have needed a massive software installation running many continuing processes on my server, taking much memory and diskspace. Mailman3 had bloated out of all recognition compared to Mailman2. It wasn’t what I wanted. Mailman 2 required Python 2. Both came out of security support years ago, and I didn’t want to do the port to Python 3 of Mailman 2 myself.

More minimalistic options didn’t have web application administration or unsubscription – you had to do everything with emailed command lines, as in the old Majordomo days. I didn’t think many of my users would want to regress that far, and having to struggle to get off a list can be a nuisance, as well as grounds for complaint to an upstream cloud hosting company. So I made unsubscription very easy, for large lists with a single click on a message footer, or a little more secure for family groups requiring a confirmation step.

So I developed Nextlist. A few odd things make this different. The web interface continues to use the CGI web application interface, keeping less code continuously in memory, apart from Apache mod-cgi which loads and executes the application on demand, meaning higher performance for smaller loads. If you have higher loads, you’ll probably want to use Mailman3 which uses the WSGI interface. The web user interface is kept minimal and functional – old school HTML generation, no need for CSS to make it look pretty.

The Nextlist email reflector program doesn’t relay attachments or HTML email which allows formatting and inline graphics. It’s intended for text only, with the ability to help distribute files of kinds which can’t harm recipient computers. A limited range of common standardised file types (e.g. JPG, MP3, PDF) are stored on the server for a time limited period, and a link is added to the plain text message. Those who want to see a file can click and download it. These don’t include executable content, so Nextlist isn’t configured by its author to propagate malware. It only relays plain text. If it gets a multipart input it sends a flat plaintext output. The unsubscribe link is customised per list member and added as a footer to each message. Cc lists on the input side aren’t relayed on the output side. Trying to relay such historically leads to having much madness to fight in both human and software messaging loops. Nextlists doesn’t attempt to archive messages. That can be done for a mailing list needing archives by subscribing an address which automatically archives input messages onto a web page to a list requiring that.

Nextlist is copyright (c) Richard Kay 2024