Listlist is a mailing list management system which relies on gentle anarchy, allowing every registered user to create/update/delete lists. It is possible to create locked lists. Only current subscribers can add subscribers to a locked list.
The main page is the list management page. There is also a back-end to send emails to the lists.
To develop this application and run all the specs locally, you will need:
- rvm
- postgresql
- redis (you can run
rake spec:noredis
to run the non-redis-dependent specs) - phantomjs
I don’t know about you, but I rarely ever set up rails apps with postgres, so I always forget how to make it work. Here it is, for next time. Change the password to what you really want it to be. hunter2 is a reference to bash.org.
$ psql -U #{someadminuser} postgres
postgres=> CREATE USER listlist WITH PASSWORD ‘hunter2’;
postgres=> ALTER ROLE listlist WITH CREATEDB;
postgres=> \q
$ psql -U listlist postgres
postgres=> CREATE DATABASE listlist_development;
postgres=> \q
If you want to get the archives going, you need a resque worker in dev mode. Ergo:
$ rake resque:work
Coverage will be enabled if you set the COV environment variable. Ergo:
$ COV=1 rake spec
You may run into issues parsing some emails. There are two options:
1) Delete the tmp directory
2) From the rails console, run Rails.cache.clear
The production application is hosted on Heroku. Check DEPLOY.textile in the root directory for deployment details.
All settings are managed by the rails_config gem. Most of the values are bogus but should be ok for dev and testing.
User accounts are automatically created when logging in for the first time using a Gmail account. You can use another Google Apps domain by changing the organization_domain setting.
When you login, you’ll see a list of mailing lists. You can reorder them,
edit them, join one, leave one, create one, delete one.
And then you can send emails to those lists.
TBD
Use the ‘Remove user’ link on the ListList home page to remove a user from all
lists, and from the database.
Check the issues on Github.
Thanks go to:
- Rex Madden for the initial idea
- Jesse Chen and Daniel Ramteke for the initial Python implementation
- Jim Stewart and Aldric Giacomoni for some bug-fixing
- Jacob O’Donnell, Najati Imam and Aldric Giacomoni for the Rails implementation
- Steven Nunez and Beth Brown for implementation of archives
- Jeremy Fine for the massive work of preparing this to be open-sourced
- All of Cyrus for ideas, fixes and improvements
MIT